This page (revision-4) was last changed on 26-Sep-2023 13:03 by Dieter Käppel

This page was created on 06-Apr-2014 13:20 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
4 26-Sep-2023 13:03 8 KB Dieter Käppel to previous
3 23-Jun-2023 11:42 6 KB Dieter Käppel to previous | to last
2 06-Apr-2014 13:20 2 KB Dieter Käppel to previous | to last
1 06-Apr-2014 13:20 930 bytes Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 20 added 29 lines
!!!Login Filter
Spring Security bietet sehr umfangreiche Konfigurationsmöglichkeiten, ebenso groß kann die Zeit werden, Verständnis für das Framework zu entwickeln. Bei kleinen Aufgaben kann es so hilfreich sein, Musterlösungen zu haben. Wie zum Beispiel für einen eigenen Single-Sign-On, Remember-Me oder anderen automatisierten Login:
{{{
<sec:http auto-config="true">
<sec:anonymous enabled="false"/>
<sec:intercept-url pattern="/faces/page/**" access="ROLE_TEMPORARY"/>
<sec:form-login login-page="/login"/>
<sec:custom-filter ref="temporaryLoginFilter" before="FILTER_SECURITY_INTERCEPTOR"/>
<sec:logout logout-success-url="/faces/security/login.xhtml"/>
</sec:http>
}}}
{{{
@Component
public class TemporaryLoginFilter extends GenericFilterBean {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
if (...)
throw new AuthenticationCredentialsNotFoundException("Authentication required");
if (...)
SecurityContextHolder.getContext().setAuthentication(authentication);
chain.doFilter(request, response);
}
}
}}}
__Erklärung:__ Der Kunstgriff besteht darin, einen Custom-Filter vor dem FilterSecurityInterceptor in die Filter-Chain einzuhängen. Der Grund besteht darin, dass an dieser Stelle Security-Exceptions vom ExceptionTranslationFilter gefangen werden und in einem Redirect auf die Login-Seite resultieren bzw. je nachdem, welchen Login-Mechanismus man standardmäßig konfiguriert hat. Andernfalls kann man den Benutzer durch setzen des Security-Context programmatisch einloggen.