Konfigurieren Spring Security ohne XML in Spring 4
Ich möchte an einem custom authentication filter
dass:
- fängt eine verschlüsselte header-token
- nach der überprüfung es, extrahiert die details des Benutzers und fügt Sie in die aktuelle Anfrage der Sicherheitskontext, in einer Staatenlosen Weg
Ich möchte in der Lage sein zu verwenden, diese Sicherheits-Kontext-Halter, um die details über den aktuellen anfordernden Benutzer korrekt behandeln Ihre Anfragen.
@RequestMapping(value = "/simple", method = RequestMethod.POST)
@ResponseBody
@Transactional
@Preauthorize(...)
public String simple(){
//collect the user's current details from the getPrinciple() and complete the transaction...
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
return "Simple";
}
Habe ich dies getan, bevor Sie in XML etwa so:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<security:global-method-security
secured-annotations="enabled" />
<security:http pattern="/**"
auto-config="true" disable-url-rewriting="true" use-expressions="true">
<security:custom-filter ref="authenticationTokenProcessingFilter"
position="FORM_LOGIN_FILTER" />
<security:intercept-url pattern="/authenticate"
access="permitAll" />
<security:intercept-url pattern="/secure/**"
access="isAuthenticated()" />
</security:http>
<bean id="CustomAuthenticationEntryPoint" class="org.foo.CustomAuthenticationEntryPoint" />
<bean class="org.foo.AuthenticationTokenProcessingFilter" id="authenticationTokenProcessingFilter">
<constructor-arg ref="authenticationManager" />
</bean>
</beans>
Allerdings möchte ich diese Arbeit mit einer neueren Spring Boot
Anwendung in einem nicht-xml-WebSecurityConfigurerAdapter wie das Beispiel in Ihren Spring-Boot-Dateien:
@Bean
public ApplicationSecurity applicationSecurity() {
return new ApplicationSecurity();
}
@Order(Ordered.LOWEST_PRECEDENCE - 8)
protected static class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//this is obviously for a simple "login page" not a custom filter!
http.authorizeRequests().anyRequest().fullyAuthenticated().and().formLogin()
.loginPage("/login").failureUrl("/login?error").permitAll();
}
}
Irgendwelche Ratschläge oder ähnliche Beispiele gibt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich etwas ähnliches. Jemand vielleicht hilfreich in die Zukunft.
Dabei wird eine xml-java-config übersetzung würde es wie folgt Aussehen:
Das sollte Sie interessieren:
Security-Methode Annotationen mit Java Konfiguration und Spring Security 3.2
und
http://spring.io/blog/2013/07/04/spring-security-java-config-preview-method-security/
Von dem, was Sie tun, ich sehe nicht ein, diesen Kommentar in den code geschrieben.