Java 确认oauth2审批流后,Princial在service/oauth/authorize(approveOrDeny中的http post)中为空
我使用的是SpringSecurityOAuth2Approval页面,当我授权一个请求时,它会作为“post”发送到“/oauth/authorize”(来自类AuthorizationEndpoint的approveOrDeny方法),但是该服务的一个参数为null,即“principal” SpringOAuth页面,当我点击授权时 () 有人知道为什么这个参数(主体)为空吗 这是spring方法,其主体为nullJava 确认oauth2审批流后,Princial在service/oauth/authorize(approveOrDeny中的http post)中为空,java,spring-security-oauth2,Java,Spring Security Oauth2,我使用的是SpringSecurityOAuth2Approval页面,当我授权一个请求时,它会作为“post”发送到“/oauth/authorize”(来自类AuthorizationEndpoint的approveOrDeny方法),但是该服务的一个参数为null,即“principal” SpringOAuth页面,当我点击授权时 () 有人知道为什么这个参数(主体)为空吗 这是spring方法,其主体为null public View approveOrDeny(@Reques
public View approveOrDeny(@RequestParam Map<String, String> approvalParameters, Map<String, ?> model,
SessionStatus sessionStatus, Principal principal) {
if (!(principal instanceof Authentication)) {
sessionStatus.setComplete();
throw new InsufficientAuthenticationException(
"User must be authenticated with Spring Security before authorizing an access token.");
}
...
...
public View approveOrDeny(@RequestParam Map approvalParameters,Map model,
会议状态(会议状态,主要负责人){
if(!(身份验证的主体实例)){
sessionStatus.setComplete();
抛出新的InsufficientAuthenticationException(
“在授权访问令牌之前,用户必须通过Spring Security的身份验证。”);
}
...
...
我发现了问题所在,我有一个类正在扩展DefaultRedirectResolver,在我调用的重写方法resolveRedirect中
SecurityContextHolder.clearContext()
只需删除SecurityContextHolder.clearContext(),主体已填充