有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

spring oauth页面,当我点击授权 (https://i.imgur.com/rJvCUo9.jpg

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

这是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.");
        }

         ...
         ...


共 (1) 个答案

  1. # 1 楼答案

    我发现了这个问题,我有一个扩展DefaultRedirectResolver的类,在我调用的重写方法resolveRedirect中 SecurityContextHolder。clearContext()

    只需移除SecurityContextHolder即可。校长来了