Установите SecurityContext в AbstractPreAuthenticatedProcessingFilter - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь аутентифицировать пользователя с PreAuthenticatedAuthenticationToken в AbstractPreAuthenticatedProcessingFilterMyPreAuthenticationFilter я делаю это так:

    @Override
    public Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
        String session = getSession(request); // not JSESSIONID, custom session
        UserInfo user = getUser(session); // custom user object

        Authentication auth = new PreAuthenticatedAuthenticationToken(
            user,
            session,
            Arrays.asList(
                new SimpleGrantedAuthority("ROLE_USER")
            )
       );
       SecurityContextHolder.getContext().setAuthentication(auth);
       return userInfo;
    }

и вот мой SecurityConfig

    @Autowired
    AuthenticationManager authenticationManager;

    @Bean
    public MyPreAuthenticationFilter preAuthenticationFilter() {
        return new MyPreAuthenticationFilter(authenticationManager);
    }

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http
            .addFilterBefore(preAuthenticationFilter(), BasicAuthenticationFilter.class)
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
        .and()
            .antMatcher("/login/oauth/authorize")
            .authorizeRequests().anyRequest().authenticated()
        .and()
            .httpBasic()
            .authenticationEntryPoint(new OAuth2EntryPoint("/login?path=/login/oauth/authorize"))
        .and()
            .csrf().disable();
    }

Я пытаюсь защитить /login/oauth/authorize с помощью пользовательской страницы входа, размещенной на хостена /login, который перенаправляет на параметр path.Однако при доступе к этому URL я обнаружил этот журнал в конце цепочки фильтров Spring Security

org.springframework.security.authentication.AnonymousAuthenticationToken@9055c2bc: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS

Почему MyPreAuthenticationFilter не аутентифицирует Spring SecurityContext?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...