带有特定域的 Spring Boot 的 Google 社交登录

     2023-02-19     56

关键词:

【中文标题】带有特定域的 Spring Boot 的 Google 社交登录【英文标题】:Google Social SignIn with Spring Boot with Specific Domain 【发布时间】:2017-11-06 05:11:49 【问题描述】:

我正在将 Google+ 登录与 Spring Social & Boot 集成。

但是它允许我使用@gmail.com 域登录,但现在我只想为组织设置登录选项。即username@googledomain.com

我们如何为 Spring Social 添加特定的域名验证?

【问题讨论】:

【参考方案1】:

当您实现自己的登录适配器时,您可以选择从身份提供者那里获取用户配置文件,并且您可以验证电子邮件地址。此处的返回字符串表示要重定向到的 URL,因此当他们的电子邮件地址与域不匹配时,您可以将他们重定向到错误页面而无需登录。

@Component
public class SocialSignInAdapter implements SignInAdapter 

    private final UserDetailsTransformer userDetailsTransformer;

    @Autowired
    public SocialSignInAdapter(UserDetailsTransformer userDetailsTransformer) 
        this.userDetailsTransformer = userDetailsTransformer;
    

    @Override
    public String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) 
        if (connection.fetchUserProfile().getEmail().matches("^.*@googledomain.com$")) 
            SecurityContextHolder.getContext().setAuthentication(
                    new UsernamePasswordAuthenticationToken(
                            userDetailsTransformer.convert(connection), null,
                            Arrays.asList(new SimpleGrantedAuthority(String.format("%s_USER", connection.getKey().getProviderId())))));
            return "/";
         else 
            return "/some-error-page";
        
    

【讨论】:

感谢您的回复。我会检查并告诉你:) 我有一个正在进行的项目,其中包含 Spring Social,所以我在那里进行了测试。解决方案可能比这个小。 我已经尝试过这个解决方案,但问题是我想在登录谷歌之前验证电子邮件地址!我们可以在谷歌域端设置一些验证吗? 如果您可以调整 spring social 以使用它,这可能会有所帮助:developers.google.com/identity/protocols/OpenIDConnect#hd-param 我已经检查了这个参数“HD”,但就我检查代码而言,Spring Social 没有提供任何提供 HD 参数的工具。

带有 Spring Boot 的 CORS - 将 GET 请求限制到某些域

】带有SpringBoot的CORS-将GET请求限制到某些域【英文标题】:CORSwithSpringBoot-restrictGETrequeststocertaindomains【发布时间】:2019-04-1722:10:53【问题描述】:我正在使用SpringBoot,并且希望仅限制来自某些域的HTTPGET请求。例如,我想只接受... 查看详情

带有嵌入式 Tomcat 的 Spring Boot 忽略了方法角色

】带有嵌入式Tomcat的SpringBoot忽略了方法角色【英文标题】:SpringBootwithembeddedTomcatignoresMethodRoles【发布时间】:2015-05-1116:07:54【问题描述】:我使用带有嵌入式Tomcat和SpringBootStarterSecurity的SpringBoot1.2.1。此外,我将RestController用于... 查看详情

带有用户和角色的 Kotlin 中的 Spring Boot 安全性

】带有用户和角色的Kotlin中的SpringBoot安全性【英文标题】:Springbootsecurityinkotlinwithusersandroles【发布时间】:2021-04-1405:45:47【问题描述】:我必须处理一个老实习生开始的应用程序。后端是用spring-boot和Kotlin制作的,我对这两者... 查看详情

带有用户名和密码的 Zonky + Spring Boot + Postgres + Flyway

】带有用户名和密码的Zonky+SpringBoot+Postgres+Flyway【英文标题】:Zonky+SpringBoot+Postgres+FlywaywithUsernameandPassword【发布时间】:2019-11-2209:48:01【问题描述】:我们正在使用Zonky对由Postgres和Flyway支持的SpringBoot应用程序进行集成测试。一... 查看详情

Java Spring Boot 加 Spring Batch 创建 Jar 并仅运行特定作业

...布时间】:2020-09-2423:34:33【问题描述】:我正在尝试使用带有SpringBatch应用程序的SpringBoot,它会有多个作业。当我尝试构建jar(假设只有一个作业)时,它仍然会启动应用程序并实际运行可用 查看详情

带有 FeignClient 的 Spring Boot RepositoryRestResource

】带有FeignClient的SpringBootRepositoryRestResource【英文标题】:SpringBootRepositoryRestResourcewithFeignClient【发布时间】:2017-08-3117:04:22【问题描述】:我已经构建了两个spring-boot应用程序,服务器端spring-boot微服务与休息资源和客户端spring-b... 查看详情

@EnableDiscoveryClient spring Boot 服务注册

...【发布时间】:2016-05-3008:36:33【问题描述】:我正在使用带有@EnableDiscoveryClient注释的eurekanetflix服务发现将SpringBoot应用程序运行到docker容器中。运行我的应用程序,它使用特定的I 查看详情

带有 Spring Boot 的 Spring Restful 服务 - NoSuchBeanDefinitionException

】带有SpringBoot的SpringRestful服务-NoSuchBeanDefinitionException【英文标题】:SpringRestfulServicewithSpringBoot-NoSuchBeanDefinitionException【发布时间】:2015-03-0515:54:12【问题描述】:我正在尝试构建一个SpringRESTfulWeb服务。我以NoSuchBeanDefinitionExcept... 查看详情

使用带有 Spring Boot 问题的 Spring Data JPA

】使用带有SpringBoot问题的SpringDataJPA【英文标题】:usingspringdatajpawithspringbootissue【发布时间】:2017-02-1301:13:55【问题描述】:我的实体客户@EntitypublicclassClientimplementsSerializable@Id@GeneratedValueprivatelongcode;privateStringnom;privateStr 查看详情

带有 MVC 的 Spring Boot SOAP Web 服务

】带有MVC的SpringBootSOAPWeb服务【英文标题】:SpringBootSOAPwebservicewithMVC【发布时间】:2015-03-1010:44:03【问题描述】:我想结合Spring指南中的两个Spring(spring-boot)应用程序:https://spring.io/guides/gs/serving-web-content/https://spring.io/guides/gs/prod... 查看详情

带有 MongoTemplate 的 Spring Boot

】带有MongoTemplate的SpringBoot【英文标题】:SpringBootwithMongoTemplate【发布时间】:2016-11-1207:08:44【问题描述】:我是SpringBoot和MongoDb的新手。使用MongoRepositories和SpringBoot尝试一些示例。但是在浏览了一些文档后发现MongoTemplate会是一... 查看详情

带有环境变量的 Spring Boot 配置

】带有环境变量的SpringBoot配置【英文标题】:Springbootconfigurationwithenvironmentvariables【发布时间】:2018-07-3106:27:48【问题描述】:我有一个SpringBoot应用程序,它与DB交互以使用SpringdataRest提供资源。我想从环境变量中获取配置。下... 查看详情

带有Angularjs注销错误的Spring Boot

】带有Angularjs注销错误的SpringBoot【英文标题】:SpringBootwithAngularjsLogoutError【发布时间】:2016-12-1900:20:36【问题描述】:我正在编写描述如何使用SpringBoot、SpringSecurity和AngularJS编写模块化项目单页应用程序的教程https://github.com/spr... 查看详情

带有端点的 Spring Boot 创建了两个 Tomcat 容器

】带有端点的SpringBoot创建了两个Tomcat容器【英文标题】:SpringbootwithendpointscreatestwoTomcatcontainers【发布时间】:2015-02-1822:52:22【问题描述】:我有一个带有以下配置的spring-bootjar:<dependency><groupId>org.springframework.boot</gro... 查看详情

带有 spring-boot 和 spring-security 的 JWT

】带有spring-boot和spring-security的JWT【英文标题】:JWTwithspring-bootandspring-security【发布时间】:2018-01-2922:33:36【问题描述】:我对Spring-Security非常陌生。我正在尝试在我的spring-boot应用程序中实现JWT以执行authentication。我跟着示例代... 查看详情

带有 spring-boot-starter-web 的 Spring Cloud Gateway

】带有spring-boot-starter-web的SpringCloudGateway【英文标题】:SpringCloudGatewaywithspring-boot-starter-web【发布时间】:2021-04-0209:39:17【问题描述】:我正在使用SpringCloudGateway为SpringBoot微服务创建网关。Gateway还负责使用SpringSecurity进行JWT授权... 查看详情

带有多个过滤器的 Spring Boot

】带有多个过滤器的SpringBoot【英文标题】:Springbootwithmultiplefilters【发布时间】:2020-09-2106:54:34【问题描述】:我正在使用SpringBoot和集成的AzureAD。为此,我使用了AADAuthenticationFilter。在我的WebSecurityConfig中,它扩展了WebSecurityConf... 查看详情

带有 Hystrix 的 Spring Boot

】带有Hystrix的SpringBoot【英文标题】:SpringBootwithHystrix【发布时间】:2019-09-1008:30:45【问题描述】:我在我的大学项目中使用。我遇到的问题是,当我将NetflixHystrix依赖项添加到pom.xml文件并运行程序时,它会抛出一个名为AbstractMe... 查看详情