kam*_*aci 15 java spring spring-security http-method
Spring Security参考说明:
您可以使用多个元素为不同的URL集定义不同的访问要求,但它们将按列出的顺序进行评估,并将使用第一个匹配项.所以你必须把最具体的比赛放在最上面.您还可以添加方法属性以限制与特定HTTP方法(GET,POST,PUT等)的匹配.如果请求与多个模式匹配,则无论排序如何,特定于方法的匹配都将优先.
如何配置Spring Security,以便根据用于访问URL模式的HTTP方法,以不同方式保护对特定URL模式的访问?
blu*_*oot 27
这只是关于配置.它表示<intercept-url>元素将在<http />配置文件的标记中从上到下进行评估:
<http auto-config="true">
<intercept-url pattern="/**" access="isAuthenticated" />
<intercept-url pattern="/login.jsp" access="permitAll" />
</http>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我们尝试仅允许经过身份验证的用户访问所有内容,当然,除了登录页面(用户必须首先登录,对吗?!).但是根据文档的说法,这将不起作用,因为不太具体的匹配是最重要的.因此,(一个)完成此示例的目标的正确配置是:
<http auto-config="true">
<intercept-url pattern="/login.jsp" access="permitAll" />
<intercept-url pattern="/**" access="isAuthenticated" />
</http>
Run Code Online (Sandbox Code Playgroud)
将更具体的匹配放在顶部.
引用的最后一件事是关于HTTP方法.您可以使用它来指定匹配,因此:
<http auto-config="true">
<intercept-url pattern="/client/edit" access="isAuthenticated" method="GET" />
<intercept-url pattern="/client/edit" access="hasRole('EDITOR')" method="POST" />
</http>
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,要/client/edit通过GET 访问,用户只需要进行身份验证,但要/client/edit通过POST(例如,提交编辑表单)进行访问,用户需要具有该EDITOR角色.在某些地方可能不鼓励这种网址模式,但这只是一个例子.
man*_*ni0 16
对于那些更喜欢基于Java注释的配置的人,请将此类放入您的应用程序中.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers(HttpMethod.GET).permitAll();
http.authorizeRequests().antMatchers(HttpMethod.POST).denyAll();
http.authorizeRequests().antMatchers(HttpMethod.DELETE,"/you/can/alsoSpecifyAPath").denyAll();
http.authorizeRequests().antMatchers(HttpMethod.PATCH,"/path/is/Case/Insensitive").denyAll();
http.authorizeRequests().antMatchers(HttpMethod.PUT,"/and/can/haveWildcards/*").denyAll();
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下Maven依赖项(Spring-Security的早期版本也可以使用):
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.0.0.M3</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.0.0.M3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19926 次 |
| 最近记录: |