oauth2 java 客户端_java – Spring security oauth2客户端

我已经设置了具有spring安全性的OAuth2服务器.我想编写客户端应用程序以使用具有spring安全性的此oauth服务器而不保护任何资源.意味着我只想用spring security 3.1从客户端运行oauth2.我编写了以下配置,但在重定向到oauth2服务器授权页面之前要求提供凭据.但是我想在从客户端询问任何凭据之前将用户重定向到oauth2服务器授权页面.我正在使用以下配置

client-id="foo" client-secret="secret" access-token-uri="${accessTokenUri}"

user-authorization-uri="${userAuthorizationUri}" scope="read" />

所以我只想/产品网址应该访问oauth2服务器.其余的URL映射应该没有这个.

并且用户应该对客户端匿名(无需在客户端显示登录).

但是当我运行我的应用程序“http:// localhost / client-sample / product / 1”时,它会显示“http:// localhost / client-sample / spring_security_login”.但我希望用户应该重定向到oaut2服务器页面.

解决方法:

Spring安全性可防止匿名用户获取访问令牌.但是,如果您仍然希望在应用程序中使用此功能,则必须扩展org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails类并覆盖isClientOnly()方法.

import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails;

public class ExtendedBaseOAuth2ProtectedResourceDetails extends

AuthorizationCodeResourceDetails {

public boolean isClientOnly() {

return true;

}

}

默认情况下,此方法返回false.所以你必须覆盖这个方法才能返回true.

然后在root-context.xml文件中,你必须像这样定义oaut2资源.

在将用户重定向到oauth2提供程序授权页面之前,这不会在客户端请求授权.

标签:java,spring-security

来源: https://codeday.me/bug/20190715/1469154.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值