我正在使用Spring-Boot和Spring Security,并使用第三方的OAuth2登录名。
SSO提供程序有一个accesstokenendpoint,它返回以下JSON
{
"access_token": "CGjok",
"refresh_token": "TSHO6E",
"scope": "openid profile ",
"id_token": "eyJ0eXAiOiJKV1QiLCg",
"token_type": "Bearer",
"expires_in": 7199,
"nonce": "ImplicitFlowTest"
}
@EnableOAuth2Sso
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/restapi/**").hasAuthority("Mitarbeiter")
.antMatchers("/login", "/static/**", "/", "/actuator/prometheus","/error**","/logout").permitAll()
.and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).invalidateHttpSession(true)
.deleteCookies("SMSESSION", "JSESSIONID", "XSRF-TOKEN").logoutSuccessUrl("/");
http
// CSRF Token
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
}
/oauth2/connect/endSession?id_token_hint=<oidc-token>&post_logout_redirect_uri=<post-logout-redirect-uri>
引用来自accesstokenendpoint的JSON中的值。我如何访问这些值给定我的设置?
从安全上下文读取令牌值
String tokenValue = null;
final Authentication authenticationObject = SecurityContextHolder.getContext().getAuthentication();
if (authenticationObject != null) {
final Object detailObject = authenticationObject.getDetails();
if (detailObject instanceof OAuth2AuthenticationDetails) {
final OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) detailObject;
tokenValue = details.getTokenValue();
} else if (detailObject instanceof OAuth2AccessToken) {
final OAuth2AccessToken token = (OAuth2AccessToken) detailObject;
tokenValue = token.getValue();
} else {
tokenValue = null;
}
}
iam无法在运行应用程序时检索到swagger ui,http://localhost:8080/Swagger-ui.html,有人能说出原因吗?
如何使用Gradle下载mybatis-spring?因为当我使用“”时,我得到了message下面的message。 这是我的文件。
再次明确地说,访问是通过Azure B2C进行的。这显然是一个很大的区别,因为有两种不同的方式访问它。 我遵循以下指南:https://docs.microsoft.com/en-us/azure/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory-b2c-oidc 我以前
我是新来spring boot的,当我从Postman那里获得RestController中的JSON时,我遇到了一个小问题。 当我从Postmat发送带有属性的请求时,RequestBody中总是为null。 这是我的Rest控制器 我的请求是这样的: 我用邮递员把这些属性 我试图将第一个字符设置为小写,但它不起作用。 这是提出的例外情况: 提前谢谢大家。
我有一个基于aspectj的通用java代理,它在几个spring boot应用程序(和几个spring boot版本)上运行。我试图找到一种在运行时获取端口的方法,在应用程序启动时(在发出请求之前)以编程方式获取端口。问题是- > 我无法使用常规方式获取Spring Boot端口,如https://stackoverflow.com/questions/30312058/spring-boot-
基于线程:Spring Data JPA-结果中带有多个聚合函数的自定义查询 我的jpa存储库中有这个查询 并且在我的pojo构造函数中是: 但我有这个错误: 创建名为“Averages Repository”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalArgumentException:对方法public abstract mx.com.sk.pojos.