Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确认oauth2审批流后,Princial在service/oauth/authorize(approveOrDeny中的http post)中为空_Java_Spring Security Oauth2 - Fatal编程技术网

Java 确认oauth2审批流后,Princial在service/oauth/authorize(approveOrDeny中的http post)中为空

Java 确认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

我使用的是SpringSecurityOAuth2Approval页面,当我授权一个请求时,它会作为“post”发送到“/oauth/authorize”(来自类AuthorizationEndpoint的approveOrDeny方法),但是该服务的一个参数为null,即“principal”

SpringOAuth页面,当我点击授权时 ()

有人知道为什么这个参数(主体)为空吗

这是spring方法,其主体为null

    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(),主体已填充