In questi giorni ho voluto smanettare un po' sul mio portatile vecchio. Ho dovuto cambiarlo ad inizio anno perchè praticamente non si chiude più. Una staffa dello schermo si è staccata dalla scocca e va a far forza sulla plastica facendo dei rumori strani e spostando fuori asse lo schermo.
Inoltre diventava sempre più lento. E' una cosa che non mi spiego, ma ha avuto un decadimento delle prestazioni davvero incredibile.
Tempo di accensione fino alla schermata gdm: accettabile. Da lì in poi un disastro..
E così ieri mi sono girate:
> apt-get remove --purge `dpkg --list | awk '{print $2}' | grep gnome`
seguito a più riprese da:
> apt-get autoremove
> apt-get remove --purge `deborphan`
poi ho installato fluxbox e xdm. Ed è stato un po' un ritorno alle origini, quando un sacco di anni fa ho iniziato a farmi le ossa con GNU/Linux su un Pentium II @450 con 96Mb di RAM, ovviamente con Fluxbox e xdm.
Per la cronaca, quel pc è ancora vivo e vegeto, con ben 192MB di ram e XFCE.. e ha, giustamente per diritti d'anzianità, l'IP 192.168.1.2 :)
sabato 19 luglio 2008
venerdì 18 luglio 2008
Java: Filter Servlet
Il bello di usare i Filter in java è che deleghi una serie di controlli che sarebbero da replicare nelle varie action struts (o pagine JSP, o altre servlet) al filtro.
Questo può servire sia come controllo sulla sessione sia come controllo di sicurezza.
Molto spesso mi son trovato a contatto con applicazioni (e sicuramente è un errore che ho fatto anch'io, eh) che non effettuano il controllo sul corretto stato della sessione in alcune aree dell'applicazione web. Per cui c'è la possiblità che alcuni punti di entrata non previsti (passando per esempio dalla cronologia del browser o da un bookmark) non effettuino i dovuti controllo.
Per tagliare la testa al toro allora si può implementare un filtro del genere che funzioni con una whitelist interna (il metodo userNotNeeded(uri)) in cui ci sono tutti gli url (quindi le funzionalità, per intenderci) che possono essere richieste anche senza utente loggato in sessione.
Quello che non passa il controllo viene rediretto alla pagina di errore
Niente di particolarmente sofisticato, ma può tornare utile..
Questo può servire sia come controllo sulla sessione sia come controllo di sicurezza.
Molto spesso mi son trovato a contatto con applicazioni (e sicuramente è un errore che ho fatto anch'io, eh) che non effettuano il controllo sul corretto stato della sessione in alcune aree dell'applicazione web. Per cui c'è la possiblità che alcuni punti di entrata non previsti (passando per esempio dalla cronologia del browser o da un bookmark) non effettuino i dovuti controllo.
Per tagliare la testa al toro allora si può implementare un filtro del genere che funzioni con una whitelist interna (il metodo userNotNeeded(uri)) in cui ci sono tutti gli url (quindi le funzionalità, per intenderci) che possono essere richieste anche senza utente loggato in sessione.
Quello che non passa il controllo viene rediretto alla pagina di errore
public class UserBeanFilter implements Filter {
[..]
public void doFilter(ServletRequest req, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
UserBean user = (UserBean)request.getSession().getAttribute(USER_BEAN);
String uri = request.getRequestURI();
if ( (user != null) || userNotNeeded(uri)) {
logger.trace("Session ok for " + uri);
chain.doFilter(request, response);
} else {
RequestDispatcher rd = request.getRequestDispatcher(ERROR_PAGE);
logger.warn("Session required for " + uri);
rd.forward(request, response);
}
}
}
Niente di particolarmente sofisticato, ma può tornare utile..
Iscriviti a:
Post (Atom)