当我在accessTokenUri中提供域名时,它不起作用并报告错误,但当我提供localhost时,它起作用。为什么?
授权服务器Config.java
@Configuration
@EnableAuthorizationServer
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthenticationManager authenticationManager;
@Override
public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
security.tokenKeyAccess("permitAll()")
.checkTokenAccess("isAuthenticated()");
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient("QWE123")
.secret("abc")
.authorizedGrantTypes("password")
.scopes("user_info").accessTokenValiditySeconds(0)
.autoApprove(true);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.authenticationManager(authenticationManager);
}
}
@EnableResourceServer
@Configuration
public class ResourceServerConfig extends WebSecurityConfigurerAdapter {
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Autowired
private UserDetailsService customUserDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login").permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin()
.permitAll();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/user/**","/swagger-ui.html", "/v2/api-docs", "/swagger-resources/**");
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(customUserDetailsService).passwordEncoder(passwordEncoder());
}
@Bean
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
App.properties
security:
basic:
enabled: false
oauth2:
resource:
filter-order: 3
ResourceServerConfig.java
@EnableOAuth2Sso
@Configuration
public class OauthConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/")
.permitAll()
.anyRequest()
.authenticated();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/swagger-ui.html", "/v2/api-docs", "/swagger-resources/**");
}
}
@Configuration
@EnableResourceServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class Oauth2ResourceServerConfig extends GlobalMethodSecurityConfiguration {
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
return new OAuth2MethodSecurityExpressionHandler();
}
}
App.properties
security:
basic:
enabled: false
oauth2:
client:
clientId: QWE123
clientSecret: abc
accessTokenUri: https://example.net/auth/oauth/token
userAuthorizationUri: https://example.net/auth/oauth/authorize
resource:
userInfoUri: https://example.net/auth/logged-in/principal
filter-order: 3
错误:
2018-09-14 12:00:13.083信息25836---[main]o.s.j.e.a。AnnotationMBeanExporter:Located managed bean'environmentManager':作为MBean[org.springframework.cloud.context.environment:name=environmentManager,type=environmentManager]在JMX服务器上注册2018-09-14 12:00:13.095信息25836---[main]o.s.j.e.a。AnnotationMBeanExporter:Located managed bean'restartEndpoint':以MBean[org.springframework.cloud.context.restart:name=restartEndpoint,type=restartEndpoint]2018-09-14 12:00:13.106信息25836-[main]o.s.j.e.a在JMX服务器上注册。AnnotationMBeanExporter:Located managed bean'refreshScope':以MBean[org.springframework.cloud.context.scope.refresh:name=refreshScope,type=refreshScope]的身份在JMX服务器上注册2018-09-14 12:00:13.116信息25836---[main]o.s.j.e.a。AnnotationMBeanExporter:Located managed bean'configurationPropertiesRebinder':以MBean[org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=35d08e6c,type=configurationPropertiesRebinder]2018-09-14 12:00:13.123信息25836---[main]o.s.j.e.a。AnnotationMBeanExporter:Located managed bean'refreshEndpoint':作为MBean[org.springframework.cloud.endpoint:name=refreshEndpoint,type=refreshEndpoint]2018-09-14 12:00:13.424信息25836---[main]o.s.c.support在JMX服务器上注册。DefaultLifecycleProcessor:在第0阶段启动bean 2018-09-14 12:00:13.482信息25836---[main]o.s.c.支持。DefaultLifecycleProcessor:在阶段2147483647 2018-09-14 12:00:13.483信息25836---[main]d.s.w.p.DocumentationPluginsBootstrapper:上下文刷新2018-09-14 12:00:13.509信息25836---[main]d.s.w.p.DocumentationPluginsBootstrapper:找到1个自定义文档插件2018-09-14 12:00:13.530信息25836---[br>main]s.d.s.w.s。ApiListingReferenceScanner:扫描api列表参考2018-09-14 12:00:13.870信息25836---[
main]s.b.c.e.t。TomcatEmbeddedServletContainer:Tomcat已在端口上启动:8080(http)2018-09-14 12:00:13.882信息25836---[
main]c.h.dfsc。DfscServiceApplication:在44.8秒内启动DfscServiceApplication(JVM运行45.324)2018-09-14 12:01:52.271信息25836---[nio-8080-exec-1]o.a.c.c.c。[雄猫]。[本地主机]。[/api]:初始化Spring FrameworkServlet“DispatchersServlet”2018-09-14 12:01:52.271信息25836---[nio-8080-exec-1]o.s.web.servlet。DispatcherServlet:FrameworkServlet“DispatcherServlet”:初始化开始2018-09-14 12:01:52.292信息25836---[nio-8080-exec-1]o.s.web.servlet。DispatcherServlet:FrameworkServlet“DispatcherServlet”:初始化在21毫秒内完成2018-09-14 12:01:52.990警告25836---[nio-8080-exec-1]o.s.b.a.s。o、 r.UserInfoTokenServices:无法获取用户详细信息:类组织。springframework。安全oauth2。客户资源UserRedirectRequiredException,需要重定向才能获得用户批准
我在这方面找到了很多,但没有成功,你能帮我吗?
我已经找到了解决办法。它是由于集群而发生的。有多个服务器实例对令牌进行身份验证和授权。当令牌生成请求发生时,它将令牌存储在一个实例上,但当授权请求到来时,它将命中另一个实例。其中未找到令牌并生成异常。在本地主机上,我只有一台服务器,因此工作正常。
我在网上搜索这个问题的解决方案,但没有找到任何有效的解决方案。我正在尝试设置基本的Spring Boot OAuth2授权提供程序和客户端。 我按照官方的Spring Boot指令,创建了Facebook和GitHub的单点登录。然后按照说明创建安全的Spring Boot Web应用程序。 以下是记录的内容: 信息2800---[nio-9999-exec-3]O.S.B.A.S.O.R.Use
我正在一个项目,其中有要求的Gmail认证,也可以扩展。我在这里遵循这个教程,其中有关于Facebook和GitHub身份验证的示例。所以我尝试了Gmail,我得到了这个错误,我无法解决,并得到了新的异常时,试图解决。请帮助我,因为我相信这是代码受我添加的影响最小的地方。有了这么多的配置和代码,它只适用于github和fb,但不适用于Google。 socialapplication.java b
是否可以使用OAuth 2访问令牌从ForgeRock的OpenAM获取用户详细信息(属于资源所有者的属性)? 我有一个受信任的SPA UI,可以使用资源所有者密码凭据授予类型从OpenAM获取访问令牌。然而,该访问令牌没有提供有关资源所有者的信息。类似地,endpoint没有提供任何信息。 OpenAM似乎有用于列出用户属性的endpoint,但是期望使用JWT作为请求的身份验证手段。 如何从访
在当前版本中,您不仅可以查看AssetBundle文件的包含资源信息和依赖关系信息,同时还可以查看每种资源的详细使用信息。目前,UWA资源检测服务对于主流资源的支持如下: 纹理资源 对于纹理资源,UWA可以提供以下重要信息:分辨率、资源格式、内存占用、Mipmap功能是否开启 和 Read/Write是否开启。这些均为影响纹理文件尺寸和内存占用的重要因素。因此,我们将其在此进行详细展示,您可以对每
Amazon标识管理iam=Amazon标识管理客户端Builder.standard()。US_EAST_1)。 有人能告诉我怎么做吗? 我试图在下面的程序中列出一个用户的标签,但我得到了下面的错误:我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档。 公共类ListUserTags{ }