54.对于配置 Spring Security 以拦截特定 URL,以下哪种策略是正确的? (选择一项) A.可以通过配置指定的 URL(使用 authorizeReguests0与 antMatchers 或 mvcMatcher 方法),最特别的配在先,最不特别的死配在B.可以通过配蛋指定的 URL(使用 authorizeRequests0和 antMatchers 或 mvcMatchers 方),最不特别的匹配在先,最特别的匹配在后C.URLs 必须在 web.xml 或你的 WebApplicationlnitializer 实现中被指定为 Servlet 映射的-部分(如果使用 Servlet 3)D.URL 是在一个特殊的属性文件中指定的,被 Spring Security 使用
时间: 2024-04-06 13:32:08 浏览: 63
答案是B.可以通过配置指定的 URL(使用 authorizeRequests 和 antMatchers 或 mvcMatchers 方法),最不特别的匹配在先,最特别的匹配在后。在Spring Security中,可以使用authorizeRequests()方法来配置拦截规则,然后使用antMatchers()或mvcMatchers()方法来指定要拦截的URL。这些URL匹配规则是按照声明的顺序进行匹配的,因此最不特别的匹配规则应该放在前面,最特别的匹配规则应该放在后面。这样可以确保更精确的匹配规则优先匹配,而较不特别的匹配规则仅在必要时才匹配。
相关问题
java 不拦截指定url,Spring Security 3.1拦截url不拦截任何网址
您好,针对您的问题,您可以通过配置Spring Security的忽略列表来实现不拦截指定URL,同时拦截其他URL。具体的实现方式如下:
1. 在Spring Security的配置文件中添加以下代码,将需要忽略的URL添加到忽略列表中:
```
<http>
<!-- 忽略的URL列表 -->
<intercept-url pattern="/url1" access="permitAll" />
<intercept-url pattern="/url2" access="permitAll" />
<intercept-url pattern="/url3" access="permitAll" />
...
<!-- 其他URL的访问控制 -->
<intercept-url pattern="/**" access="ROLE_USER" />
...
</http>
```
2. 在上述代码中,`/url1`、`/url2`、`/url3`是需要忽略的URL,可以根据实际情况进行修改。`ROLE_USER`是其他URL的访问控制,也可以根据实际情况进行修改。
3. 保存配置文件后,重新部署应用程序即可生效。
希望以上内容能够帮助到您。如果您有任何疑问,请随时提出。
spring security底层拦截器是通过url验证信息的么
Spring Security 的底层拦截器并不是通过 URL 验证信息的,它的实现原理要比这更加复杂。
Spring Security 的拦截器主要是通过过滤器和拦截器链来实现的。在过滤器链中,Spring Security 首先会拦截所有的 HTTP 请求,并将它们传递给一个名为 FilterSecurityInterceptor 的过滤器。这个过滤器会根据配置文件中的规则,判断当前用户是否有权限访问该请求。
在拦截器链中,Spring Security 使用了一个名为 MethodSecurityInterceptor 的拦截器来拦截方法调用。这个拦截器会检查调用者的身份和权限,并根据配置决定是否允许调用方法。
在 Spring Security 中,URL 配置只是一种配置方式,它可以通过 antMatchers()、regexMatchers() 等方法来配置。这些方法会将 URL 和对应的权限信息配置到 Spring Security 中,但是它们并不是用来验证信息的。实际上,Spring Security 的验证是基于用户的身份和权限信息来实现的,而不是基于 URL。