我正在学习Spring Security的一些代码。我想了解我在Internet 1上找到的这个例子:
http.requestMatchers()
.antMatchers("/management/**") // (1)
.and()
.authorizeRequests() // (2)
.antMatchers("/management/health")
.permitAll()
.antMatchers("/management/info")
.permitAll()
.antMatchers("/management/**")
.hasRole("ACTUATOR")
.anyRequest().permitAll()
.and()
.httpBasic(); (3)
}
我不明白这个配置,为什么这个代码:
http.requestMatchers()
.antMatchers("/management/**")
.and()
在之前。authorizeRequests()?(1)
这是什么意思?
你能解释一下这个例子吗?
2: 在第二种情况下,有什么区别?
http.requestMatchers().antMatchers("/rest2/**")
.and()
.authorizeRequests()
.antMatchers("/rest/v1/test/hello").permitAll()
.antMatchers("/rest/v1/test/**").denyAll()
.and()
.requestMatchers().antMatchers("/rest/**")
.and()
.authorizeRequests()
.antMatchers("/rest/v1/test/hello").permitAll();
使用requestMatchers()有什么影响?
如果我向“/rest/v1/test/hello2”发送请求,我会收到一个401为什么拒绝请求的规则与antMatcher(“/rest2/**") ?
Spring SecurityAPI:公共最终类HttpSecurity。RequestMatcherConfiguration扩展了AbstractRequestMatcherRegistry
允许映射此HttpSecurity将用于的HTTP请求
requestMatchers()的目的是指定Spring Security配置将应用于哪些请求。
例如,如果您有两个endpoint,并且您只想对其应用安全性(特别是csrf保护),那么您可以添加以下配置:
http
.requestMatchers()
.antMatchers("/private/**")
.and()
.csrf();
然后,如果您发布到“/private”,您将得到403响应
但如果您发布到“/public”
,您将得到200分,因为没有应用安全性。
这与指示该endpoint所需的访问类型的authorizeRequests(授权请求)不同,而不是是否应用了安全性。
在你提到的例子1中
http
.requestMatchers()
.antMatchers("/management/**")
.and()
...
安全配置仅应用于"/Management/**"
,因此如果您向"/foo"
发出请求,它将不安全。
在你提到的例子2中,
http
.requestMatchers()
.antMatchers("/rest2/**")
.and()
.authorizeRequests()
.antMatchers("/rest/v1/test/hello").permitAll()
.antMatchers("/rest/v1/test/**").denyAll()
.and()
.requestMatchers()
.antMatchers("/rest/**")
.and()
.authorizeRequests()
.antMatchers("/rest/v1/test/hello").permitAll();
"/rest/v1/test/hello2"
以401响应的原因是因为"/rest/**"
位于请求匹配器中,因此您的安全规则. antMatcher("/rest/v1/test/hello"). permitAll()
将适用。
如果您向"/rest3/v1/test/hello2"
发出请求,那么它将以200响应,因为"/rest3/**"
不是任何请求匹配器的一部分。
问题内容: 我在OS X上使用Java已经很多年了,最近,当Apple停止默认包含Java时,我让OS继续为我安装它(当然,Apple的品种很多)。 因此,现在我正在使用OS X 10.8,并且需要安装Java 7,因此我刚刚获得了DMG形式的Oracle Update 15,并运行了安装程序。它更新了我的/ usr / bin / java(和相关文件)以指向此处: 追溯到“ /System/L
主要内容:1.入门,2.设置用户名和密码1.入门 1.启动一个SpringBoot项目 2.导入SpringSecurity相关依赖 3.编写Controller TestController.java 用户是user 密码是刚刚的 2.设置用户名和密码 1.在配置文件中设置 2.在配置类中设置 3.自定义实现类 2.1 配置文件中设置 2.2 在配置类中设置 设置用户名为zZZ,密码为root 2.3 自定义实现类 配置类: 业务类:
问题内容: 我目前正在评估基于Java的安全框架,我是Spring 3.0用户,因此似乎似乎SpringSecurity是正确的选择,但是Spring安全性似乎受到过分复杂的困扰,它似乎并没有使安全性易于实现, Shiro似乎更加连贯,更容易理解。我正在寻找这两个框架之间的利弊清单。 问题答案: 我也同意Spring Security对我来说感觉太复杂了。当然,他们已经做了一些降低复杂性的事情,例
在WAR的情况下,它试图将请求转发到/error页面,并寻找它的处理程序方法(请参见底部的日志)。 最后我得到以下回应: 我该换什么才能得到401?
1.导入jar包 web.xml spring-security.xml
问题内容: 我认为我对 .NET 的经验可能会影响我的理解,因此我想一些代码示例: 我正在尝试让快速控制器在返回响应之前等待5秒: 该代码不起作用,浏览器不断加载和加载,从不显示任何内容。 我基于此SO答案构建的函数以及控制器方法,是基于(对)其工作原理的(错误的)理解,因此我需要进行一些澄清和更正: 1.我应该什么时候使用? 据我了解,您应该在函数调用之前使用。这样对吗?另外,为什么我可以在返回