有 Java 编程相关的问题?

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

java ProviderSignNutils。getConnectionFromSession(请求)提供空异常

当我单击lick /auth/facebook?...以获取重定向到注册页面时,控制器使用Connection<?> connection = providerSignInUtils.getConnectionFromSession(request);获取用户信息。然而,在这一行代码中,它给了我一个空异常

WebRequest有什么问题吗

另外,我可以用ajax完成注册过程吗

控制器方法:

@RequestMapping(value = "/facebookRegister", method = RequestMethod.GET)
    public String facebookRegister(Model model, WebRequest request){
        Connection<?> connection = providerSignInUtils.getConnectionFromSession(request);
        model.addAttribute(UserRegisterModel.fromConnection(connection));
        return "test/facebook";
    }

我的spring安全配置:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.exceptionHandling().authenticationEntryPoint(customAuthenticationEntryPoint())
            .and()
        .authorizeRequests()
        .antMatchers("/mngt/**").hasAuthority("UPDATE_USER_MANAGEMENT")
            .and()
        .logout().logoutUrl("/logout").logoutSuccessHandler(securityLogoutSuccessHandler()).deleteCookies("JSESSIONID").invalidateHttpSession(true)
            .and()
        .exceptionHandling().accessDeniedPage("/denied")
            .and()
        .csrf()
            .and()
        .rememberMe().key("remember-me").rememberMeServices(persistentTokenBasedRememberMeServices()).tokenValiditySeconds(1209600)
         .and().apply(new SpringSocialConfigurer().signupUrl("/user/facebookRegister"));

    http.addFilterBefore(usernamePasswordAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
    http.addFilterAfter(rememberMeAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
}

我的春季社交配置:

@Configuration
@EnableSocial
@PropertySource("classpath:social.properties")
public class SocialConfig extends SocialConfigurerAdapter {

    @Autowired
    private DataSource dataSource;

    @Autowired
    private Environment env;

    @Override
    public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig, Environment env) {
        FacebookConnectionFactory facebookConnectionFactory = new FacebookConnectionFactory(
                this.env.getProperty("facebook.clientId"), 
                this.env.getProperty("facebook.clientSecret"));

        cfConfig.addConnectionFactory(facebookConnectionFactory);
    }

    @Override
    public UsersConnectionRepository getUsersConnectionRepository(ConnectionFactoryLocator connectionFactoryLocator) {
        return new JdbcUsersConnectionRepository (
                dataSource,
                connectionFactoryLocator,
                Encryptors.noOpText() 
        );

    }

    @Bean
    public ProviderSignInUtils providerSignInUtils(ConnectionFactoryLocator connectionFactoryLocator, UsersConnectionRepository connectionRepository) {
        System.out.println("connectionFactoryLocator: " + (connectionFactoryLocator.registeredProviderIds().toString()) +  "   connectionRepository: " + (connectionRepository.toString()));
        return new ProviderSignInUtils(connectionFactoryLocator, connectionRepository);
    };

    @Override
    public UserIdSource getUserIdSource() {
        return new AuthenticationNameUserIdSource();
    }

}

共 (0) 个答案