java - 如何使用 Apple 启用 Spring Boot 应用程序的 SSO oauth2
问题描述
我正在编写一个 Web Spring Boot Web 应用程序,并且我正在尝试使用 Apple 的 Oauth2 SSO 登录到我的应用程序,但是我没有在 Web 上找到任何可以指导我逐步实现这一目标的资源。我已经让它与 Google SSO 一起工作,因为我能够找到大量的材料。大多数配置发生在 Google SSO 的 application.yaml 文件中,如下所示:
spring:
security:
oauth2:
client:
registration:
google:
client-id: MY_CLIENT_ID
client-secret: MY_CLIENT_SECRET
我可以很容易地从我的 google 帐户生成这些客户端 ID/秘密,并且由于我使用的是 spring-security,大多数需要的东西都覆盖了 WebSecurityConfigurerAdapter.configure(HttpSecurity http) 所以我的看起来像这样:
http.authorizeRequests()
.antMatchers("/", "/login", "/css/**", "/js/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().permitAll()
.loginPage("/login")
.usernameParameter("email")
.passwordParameter("pass")
.defaultSuccessUrl("/main")
.and()
.oauth2Login()
.loginPage("/login")
.userInfoEndpoint()
.userService(oauthUserService)
.and()
.successHandler(new AuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException, ServletException {
System.out.println("AuthenticationSuccessHandler invoked");
System.out.println("Authentication name: " + authentication.getName());
CustomOAuth2User oauthUser= new CustomOAuth2User((OAuth2User)authentication.getPrincipal());
//userService.processOAuthPostLogin(oauthUser.getEmail());
response.sendRedirect("/main");
}
})
.defaultSuccessUrl("/main")
.and()
.logout().logoutSuccessUrl("/").permitAll()
.and()
.exceptionHandling().accessDeniedPage("/403")
所以我不必做任何其他事情,框架会为我处理它。但是,我正在努力寻找如何使用苹果 SSO 来实现这一目标。我想我必须在 .yaml 文件中添加这样的客户端 ID/客户端密码,其余的由框架完成,但我该如何生成它们。我已经创建了一个苹果帐户,但我是否必须注册一个开发者计划(不幸的是每年 99 美元)才能继续进行该项目?
谁能详细解释我应该怎么做才能使它工作?我找不到与将 Apple SSO 与 Spring Boot 集成相关的任何内容。我有最后期限,所以我会很感激任何帮助。
提前致谢。
解决方案
推荐阅读
- xml - 有没有一种简单的方法来表示 xsl 样式表中的引号?
- google-maps - 谷歌地图样式版本 - 即使在关闭可见性后,标签也有笔触效果
- typescript - 界面中的分隔符有什么区别?
- jquery - Jquery:如何循环遍历大数据量的xml数组
- gradle - 如何在 Gradle 中获取与 init 脚本相对应的脚本实例?
- selenium - JMeter 是否使用 junit 采样器测量服务器响应?
- android - 如何从 json 对象中获取数据
- c# - AutoMapper - 展平/取消展平到列表
- python - 如何在多平台环境中从文件夹中导入多个 csv 文件
- python - 运行需要太长时间的查询后的pyhive连接问题