【发布时间】:2019-09-18 01:42:02
【问题描述】:
我有一个配置了工作安全性的 spring 项目,我想要做的是设置一个特定的路径,该路径将接受 REST 调用,只需要基本的用户/密码身份验证,可以硬编码。
我知道这有点奇怪,但我有一个非常具体的用例。
安全码类似于:
@Override
public void configure(HttpSecurity http) throws Exception {
http
...
.and()
.authorizeRequests()
.antMatchers("my-path/**").authenticated()
}
我不太了解 spring 是如何发挥所有魔力的,但我希望它看起来像这样:
@Override
public void configure(HttpSecurity http) throws Exception {
http
...
.and()
.authorizeRequests()
.antMatchers("my-path/**").authenticatedWithUserPassword("user", "pswd")
}
必须发生的两件事:
- 我希望这个用户/pswd 只为这条路径工作!
- 我希望此路径仅适用于该用户/pswd,而不适用于其他身份验证类型!
【问题讨论】:
-
您的 API 中有其他身份验证类型吗?
-
是的,通常我的应用受 oauth2 保护
-
有人刚刚引用了我这个:stackoverflow.com/questions/25794680/…,看来这可能是要走的路
-
@orirab:常规方式是使用两种Spring Security配置,一种只匹配你的特殊路径(这个配置需要低位),一种匹配所有路径。您可以在第一个 Spring Security 配置中使用本地内存中的身份验证管理器,而不是使用全局身份验证管理器。
-
@dur 你能提供一个代码示例吗?
标签: java spring spring-boot spring-security