Configurer la Sécurité Printemps sans XML au Printemps 4
Je veux utiliser un custom authentication filter
que:
- capture chiffré en-tête de jeton
- après validation, extrait les données de l'utilisateur et les ajoute à la demande actuelle du contexte de sécurité dans un apatride, de façon
Je veux être en mesure d'utiliser ce contexte de sécurité, titulaire pour obtenir les détails sur l'actuel demandant à l'utilisateur de gérer correctement leurs demandes.
@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";
}
Je l'ai fait avant d'en XML comme suit:
<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>
Cependant, je veux que ce travail avec une nouvelle Spring Boot
application dans un non-xml WebSecurityConfigurerAdapter comme l'exemple dans leur Ressort les fichiers de Démarrage:
@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();
}
}
Des conseils ou des exemples similaires là-bas?
Vous devez vous connecter pour publier un commentaire.
Je suis en train de faire quelque chose de similaire, maintenant. Quelqu'un pourrait trouver cela utile dans l'avenir.
Faire un xml pour java config traduction serait la faire ressembler à la suivante:
Cela devrait vous intéresser:
Méthode de sécurité des Annotations Java de la Configuration et de la Sécurité Printemps 3.2
et
http://spring.io/blog/2013/07/04/spring-security-java-config-preview-method-security/
De ce que vous faites je ne vois pas cette annotation dans le code que vous avez posté.