Training „git“
07.10.2010 - 08.10.2010, Essen
Training „Eclipse RCP“
28.03.2011 - 01.04.2011, Dortmund

Sicherheit, passwortgeschützte Seitenbereiche

Erweitern der Web-Session

Beispiel: Web-Session-Klasse

public class SomeAppSession extends WebSession {

    private LoginVO login;
    
    public SomeAppSession(Request request) {
        super(request);
    }
    
    public static SomeAppSession get() {
        return (SomeAppSession) Session.get();
    }
    
    public LoginVO getLogin() { /* ... */ }
    
    public void setLogin(LoginVO login) { /* ... */ }
    
}

AuthorizationStrategy

Beispiel AuthorizationStrategy

public class SomeAuthorizationStrategy implements IAuthorizationStrategy {

    public <T extends Component> boolean isInstantiationAuthorized(Class<T> componentClass) {
        // only restrict access to Pages, allow LoginPage
        if (!Page.class.isAssignableFrom(componentClass))
            return true;
        if (LoginPage.class.isAssignableFrom(componentClass))
            return true;
        // deny everything else if no session / login present
        SomeAppSession session = SomeAppSession.get();
        return session != null && session.getLogin() != null;
    }

    public boolean isActionAuthorized(Component component, Action action) {
        // action: RENDER, ENABLE
        return true;
    }
}

Tipps und Tricks: Sicherheit

Über Ihre Kommentare und Hinweise freue ich mich sehr:
Ralf Ebert | Apache Wicket | Sicherheit, passwortgeschützte Seitenbereiche