gpt4 book ai didi

java - Spring Security 3.2 Java配置

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:19 26 4
gpt4 key购买 nike

我按照 spring security 3.2 文档编写了一个示例应用程序。 http.authorizeRequests().anyRequest().authenticated() 这是否意味着任何未登录的请求都会被拒绝?但我访问任何可访问的网址。我缺少什么配置吗?

@Configuration
public class SpringWebMVCApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { SecurityConfig.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebConfig.class };
}

@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}

}

springmvc配置

@Configuration
@EnableWebMvc
@ComponentScan("org.jxs.mm.controller")
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/");
registry.addResourceHandler("/favicon.ico").addResourceLocations("/favicon.ico");
}

}

Spring 安全配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated();
}
}

最佳答案

您可能还没有在 war 中注册您的 springSecurityFilterChain 。请参阅 Spring Security documentation 中的 3.1.1 节

总结一下:

SecurityConfig 类定义您的 Spring Security 配置。它配置 springSecurityFilterChain 过滤器。

但是,此过滤器链需要应用于/注册/关联到应用程序中的所有 URL(以便 URL 被 springSecurityFilterChain 拦截)。这可以通过扩展 AbstractSecurityWebApplicationInitializer 来完成,如下所示:

import org.springframework.security.web.context.*;

public class SecurityWebApplicationInitializer
extends AbstractSecurityWebApplicationInitializer {

}

此后,Spring Security 应拦截任何 URL 并根据配置应用适当的安全规则。

关于java - Spring Security 3.2 Java配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com