Kai*_*har 9 ws-security authorization restful-authentication spring-security rest-security
我正在尝试为REST端点提供安全性.我正在按照本页的说明操作.在我的情况下,我没有视图,因此我没有创建控制器来指定视图,也没有在我的AppConfig.java中添加viewResolver
实现后,它在调用安全的REST端点时正确显示访问被拒绝错误.但即使我在请求标头中指定了用户名/密码,我也会收到拒绝访问错误.我正在测试基本身份验证中的邮递员设置用户名/密码.我有什么想法?
您遵循的示例是实现基于表单的身份验证.要将其更改为http auth(更适合REST服务),您需要form-login在security.xml中查找以下标记:
<form-login
login-page="/login"
default-target-url="/welcome"
authentication-failure-url="/login?error"
username-parameter="username"
password-parameter="password" />
Run Code Online (Sandbox Code Playgroud)
只需将其更改为空http-basic标记:
<http-basic />
Run Code Online (Sandbox Code Playgroud)
如果你没有改变任何其他东西,那么它应该是完美的.您还可以尝试访问自己的页面,从浏览器测试设置.如果您正确配置了所有内容,则此时会弹出一个弹出窗口,而不是表单.这将是HTTP基本认证,欢迎您.
由于您可能正在使用基于Java的配置,因此相应的此更改将替换为:
http.authorizeRequests()
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
.antMatchers("/dba/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_DBA')")
.and().formLogin();
Run Code Online (Sandbox Code Playgroud)
有:
http.authorizeRequests()
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
.antMatchers("/dba/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_DBA')")
.and().httpBasic();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1807 次 |
| 最近记录: |