我正在尝试建立一个带有基本身份验证的普通Spring Boot环境。
基本上,我只想自定义用户、受保护的路径和自定义密码编码器。
Spring Boot留档状态:
要在不更改任何其他自动配置功能的情况下覆盖访问规则,请添加一个带有@Order(SecurityProperties.access_override_Order)的WebConfigurerAdapter类型的@Bean。
注意:我认为WebConfigurerAdapter应该是WebSecurityConfigurer适配器。
所以我尝试了以下方法:
protected static class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Autowired
private PasswordEncoder passwordEncoder;
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.authorizeRequests()
.antMatchers("/assets/**").permitAll()
.antMatchers("/api/**").hasRole("USER")
.antMatchers("/management/**").hasRole("ADMIN");
// @formatter:on
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// @formatter:off
auth
.inMemoryAuthentication()
.passwordEncoder(passwordEncoder)
.withUser("admin")
.password(passwordEncoder.encode("pwd"))
.roles("USER", "ADMIN")
.and()
.withUser("user")
.password(passwordEncoder.encode("pwd"))
.roles("USER");
// @formatter:on
}
}
默认启动安全性似乎正是我想要的:
security.enable-csrf=false
security.basic.enabled=true
security.sessions=stateless
但是,当我运行应用程序时,基本身份验证不起作用。
当我在我的 Web 安全配置中显式配置它时使用 http.httpBasic()
像:
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
.httpBasic()
.and()
.authorizeRequests()
.antMatchers("/assets/**").permitAll()
.antMatchers("/api/**").hasRole("USER")
.antMatchers("/management/**").hasRole("ADMIN");
// @formatter:on
}
然后基本身份验证开始工作。
所以上面的初始设置似乎没有采用默认配置。
我错过了什么吗?
每个WebSecurityConfigrer
都有自己的过滤器链,带有自己的请求匹配器和安全规则。添加WebSecurityConfigrer
(抱歉文档中的错别字)不会改变默认的引导自动配置过滤器链,但它也不会为自己的过滤器链做任何神奇的事情。你需要告诉Spring Security如何保护这些资源——你给了它访问规则,但没有身份验证策略。有道理吗?
具有状态405和身份验证的页面不工作。 来自 Spring 引导日志的错误 o.s.web.servlet.不支持请求方法POST jsp页面出错: 白标错误页面 该应用程序没有针对/error的显式映射,因此您可以将它视为一个后备。 出现意外错误(类型=不允许方法,状态=405)。不支持请求方法“POST” Spring信息: -使用Spring Security 3.2.5 -使用Spring
我需要使用身份验证协议Kerberos,使用Camel将ActiveMQ消息路由到Kafka(Cloudera)。 活动 MQ v5.15.4 骆驼:2.21.1 Kafka客户端:1.1.0 服务器版本: 阿帕奇/2.4.6(仙人掌) Kafka安全文档声明它只支持Kerberos的SSL明文和SASL_SSL 另一方面,当我试图在Camel中使用SASL明文作为安全协议时,我在ActiveMQ
我正在尝试使用 JDBC 函数使用 Google Apps 脚本连接到我的 MS-SQL DB。我们使用Windows集成安全性,但是当我尝试使用此参数进行连接时,我收到一条错误消息,指出它不受支持。 我已经尝试提供我的windows凭据,并使用参数“IntegratedSecurity=true”,但无法连接,尝试使用服务器IP和名称,但也不起作用。 我也尝试过这种形式: 它应该连接到服务器,但
我刚刚开始学习Java Spring Boot for REST API开发。在下面的代码中,GET方法可以正常工作,但POST不能。 在Postman应用程序中使用as 错误 在日志中我可以看到, maven的Java和springboot版本,
我正在尝试让Spring 4.1.9和Thymeleaf 2.1.5渲染XHTML Basic 1.1页面,它们具有以下序言: 简单地在模板中使用它是行不通的,因为百里香叶不能识别doctype。 org . thyme leaf . exceptions . templateprocessingexception:使用public id "-//W3C//DTD XHTML Basic 1.1/
我无法在注释中使用方法。还有给出。我错过了什么?尽管工作正常。 我正在从数据库中为用户分配权限。