我正在尝试在spring-security中验证okta令牌,这是我从UI中获得的。从okta网站我得到了下面的配置来验证令牌
AccessTokenVerifier jwtVerifier = JwtVerifiers.accessTokenVerifierBuilder()
.setIssuer("https://${yourOktaDomain}/oauth2/default")
.setAudience("api://default") // defaults to 'api://default'
.setConnectionTimeout(Duration.ofSeconds(1)) // defaults to 1s
.setReadTimeout(Duration.ofSeconds(1)) // defaults to 1s
.build();
它也可以工作,但我无法从spring-security configuration调用上面的命令,请帮助我编写spring-security config来验证spring security中的jwt token
申请详情:Springboot2.5
Mycode:in springsecurity config(有错误,不工作)
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.headers()
.httpStrictTransportSecurity()
.includeSubDomains(true)
.maxAgeInSeconds(63072000);
httpSecurity.cors().and()
.csrf().disable()
.authorizeRequests()
.anyRequest()
//.permitAll()
.authenticated()
.and().oauth2ResourceServer() .jwt()
.jwtAuthenticationConverter(jwtAuthenticationConverter())
.validator(oktaAccessTokenValidator());
}
1条答案
按热度按时间mgdq6dx11#
我要再为my starter做些促销活动。
你应该看看使用这样一个额外的启动器的利弊。本节还包含了一些教程的链接,这些教程指导你自己编写conf(不需要我的启动器)。
用我的启动器,你只需要:
没有关于安全的遗漏。您甚至不需要提供
SecurityFilterChain
、令牌验证器、JWT解码器、身份验证转换器、身份验证管理器等。最好的事情是它可以与任何其他OpenID提供商(Auth 0,Keycloak,Amazon Cognito,spring-authorization-server等)一起使用:所有你需要改变的将是JSON路径的私人索赔使用的权威来源。如果您以后需要一个OAuth2客户机来代替您的资源服务器,或者除了您的资源服务器之外还需要一个OAuth2客户机,那么我的starter也会被修改,并且属性上的差异在主要的README中有解释。