通过Spring Security的授权使用OAuth2数据创建自定义用户

华金·罗伯斯

我正在尝试在我的应用程序中支持表单登录和Facebook身份验证,目的都是创建一个User对象。有了formLogin我,我可以创建一个注册控制器并保留我的User实体,但是如何从Facebook截获OAuth2身份验证以创建(或登录(如果已有的话)一个)User实体?

到目前为止,这是我的安全配置:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
            .authorizeRequests()
            .antMatchers("/oauth2/**", "/webjars/**", "/users/signup", "/users/recover", "/users/reset/**", "/img/**", "/css/**", "/js/**").permitAll()
            .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/users/login")
                .successHandler(loginSuccessHandler())
                .permitAll()
                .and()
            .logout()
                .logoutUrl("/users/logout")
                .logoutSuccessUrl("/users/login?logout")
                .permitAll()
                .and()
            .oauth2Login()
                .defaultSuccessUrl("users/facebook");
    }

有没有一种方法可以创建一个successHandler或类似的方法来完成此任务?

华金·罗伯斯

最终找到了解决方案,如此处所述您应该spring-security-oauth2-autoconfigure使用@ EnableOAuth2Sso批注使用包配置OAuth2授权,然后创建PrincipalExtractor以根据OAuth2提供程序发送的数据来构建用户实体。

这样,您可以getPrincipal()在以后的调用中访问自己的模型对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Scribe通过POST向自定义API发出OAuth2授权请求

在Spring Security OAuth2中自定义TokenEndpoint

如何使用Spring Security OAuth2在Spring Boot中注册自定义BasicAuthenticationFilter AuthenticationProvider

自定义您使用OAuth2从Spring Security的身份验证错误

将自定义UserDetailsService添加到Spring Security OAuth2应用

Google OAuth2的增量授权使用Spring Security登录

如何在spring security oauth2授权服务器中通过jwt令牌获取用户信息?

使用JDBC和JWT来实现Spring OAuth2,并使用基于XML的配置来自定义现有授权流

如何实现Spring OAuth2自定义流程?

Spring OAuth2自定义登录错误

如何在Spring OAuth2资源服务器中使用自定义UserDetailService?

Spring boot、Security、OAuth2:是否可以使用自定义 AuthorizationCodeResourceDetails?身份验证服务器需要重定向 url 中的特定参数

使用Spring Security OAuth2验证不同的用户类型

Spring Security Oauth 2自定义令牌端点URL

Spring Security 5.2 -- 如何自定义 OAuth2ResourceServer 使用的 NimbusJWTDecoder?

使用 Spring Boot 和 Spring Security 的 OpenID (OAuth2) 授权失败

无法通过使用带有自定义UserDetail和AuthenticationProvider的Spring Security阻止用户多次登录

使用授权代码授权和 JWT 使用 OAuth2 通过 spring boot 登录到客户端

Spring Security OAuth2是否通过PKCE支持浏览器(Angular)客户端的授权代码流?

Spring OAuth:用于认证授权端点的自定义表单

OAuth2客户端主体在通过其他自定义授权服务器(SpringBoot2&OAuth2)进行身份验证时没有GrantedAuthorities

Spring Boot OAuth2自定义登录表单用例

Spring OAuth2自定义授予类型自动装配类返回null

Spring OAuth2安全性-客户端凭据-自定义AuthenticationProvider

Spring OAuth2自定义身份验证管理器ClassCastException

具有自定义安全过滤器的Spring Boot OAuth2

具有自定义OAuth2请求的Spring WebClient

如何刷新的OAuth2令牌使用Spring Security 5 OAuth2用户端和RestTemplate

通过使用AngularJS的自定义登录进行Spring Security身份验证