我的应用程序由一个角度UI和一个Spring后端组成。两者都捆绑在一起并部署在同一台服务器上。我是Security/Oauth2的新手,我发现它非常令人困惑。我想要公开一些API,这些API可以从UI或Postman/Swagger.I中使用,我已经成功地配置了SpringSecurity5的OAuth2ResourceServer,它运行得非常好。当我用承载令牌调用API时,它就像预期的那样工作。
http.requestMatchers().antMatchers("/api/**")
.and().authorizeRequests().anyRequest().authenticated()
.and().oauth2ResourceServer().jwt(); 现在,我还必须配置相同的API调用时从UI。这很让人困惑。我试图创建一个单独的http配置如下;
http.antMatcher("/**").authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login();
...
...我真的不知道该怎么做。我已经在clientid, clientSecret, authorization-grant-type, redirect-uri, scope, authorization-uri, token-uri文件中配置了application.properties。期望使用集中式登录页面提示用户,并以某种方式将grant_code交换为访问令牌(Jwt)。来自UI的所有请求都必须在其头中包含此令牌才能访问API,我在前面已经描述过这个API()。同样,对于将令牌存储在标头或cookie中,我感到困惑。
抱歉,如果我不清楚的话。我对OAuth2的理解是非常基本的,我正试着阅读一页文档,这对我来说毫无意义。
发布于 2022-11-24 16:39:29
您可以将后端保留为oauth2资源服务器(现在是这样),然后将前端配置为oAuth2公共客户端。您可以使用角键斗篷库进行此操作。然后,前端代码负责从您的ID中获取访问令牌,然后在每个api调用的请求头中设置它。
https://stackoverflow.com/questions/65123627
复制相似问题