Ajouter http filtre de sécurité dans java config
J'essaie d'ajouter de la sécurité sur le web au printemps mais je ne veux pas le filtre à appliquer à certaines choses. Comment est-ce fait en java?
Et peut-être il ya une meilleure façon de le faire car j'ai créé un filtre personnalisé, mais c'est la seule façon que je peux penser de l'instancier en raison de ses dépendances.
Dans l'ensemble, ce que je veux faire, c'est ceci:
/resources/**
Ne DOIT PAS passer par le filtre,
/login
(POST) ne DEVRAIT PAS passer à travers le filtre,
tout le reste DOIT passer par le filtre
Par le biais de divers exemple, j'ai trouvé par le biais de printemps, j'ai été en mesure de venir avec ce que pour un début, mais il est évident qu'elle ne fonctionne pas:
@Configuration
@EnableWebSecurity
@Import(MyAppConfig.class)
public class MySecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
public void configure(WebSecurity webSecurity) throws Exception
{
webSecurity.ignoring().antMatchers("/resources/**");
}
@Override
public void configure(HttpSecurity httpSecurity) throws Exception
{
httpSecurity
.authorizeRequests()
.antMatchers("/resources/**").permitAll()
.antMatchers("/login").permitAll();
httpSecurity.httpBasic();
httpSecurity.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
@Bean
@Autowired
public TokenFilterSecurityInterceptor<TokenInfo> tokenInfoTokenFilterSecurityInterceptor(MyTokenUserInfoCache userInfoCache, ServerStatusService serverStatusService, HttpSecurity httpSecurity) throws Exception
{
TokenService<TokenInfo> tokenService = new TokenServiceImpl(userInfoCache);
TokenFilterSecurityInterceptor<TokenInfo> tokenFilter = new TokenFilterSecurityInterceptor<TokenInfo>(tokenService, serverStatusService, "RUN_ROLE");
httpSecurity.addFilter(tokenFilter);
return tokenFilter;
}
}
Vous devez vous connecter pour publier un commentaire.
Êtes-vous intéressé à tous de Printemps de Sécurité en ignorant l'Url ou vous voulez seulement que filtre spécifique pour ignorer la demande? Si vous souhaitez tout de Printemps de Sécurité pour ignorer la demande, il peut être fait en utilisant les éléments suivants:
Si vous voulez avoir seulement cette Filtre à ignorer les demandes particulières, vous pouvez faire quelque chose comme ceci:
configure(HttpSecurity http)
, d'autant plus que le changement de type long. N'est-ce pas tout (beaucoup) plus clair si on enlève ceuxand()
et écrire une nouvellehttp.something()
déclaration ? Ce qui me manque ici?1 Dans la configuration xml de spring-security-je utiliser
le récupérer à partir de vérification de sécurité.
2 Après que ajouter
mvc:resource
balise dans votre configuration springImportant: cette configuration ne fonctionnera que si l'url est gérée par le répartiteur de la servlet. Cela signifie que, dans web.xml vous devez avoir