我开始关注Oauth2初学者项目和最小配置。
所有示例都在内存配置或jdbc配置中用于存储客户端角色(例如ClientDetailsServiceConfigurer)。在我的情况下,细节应该在LDAP中。所以我有两个问题。
org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer
Spring Boot中的这种间接使得它非常难以遵循,而且很少有文档没有帮助。或许我错过了什么?
谢谢!这一直困扰着我。
答案 0 :(得分:2)
要使用LDAP实现Oauth2,您可以按照本教程:https://raymondhlee.wordpress.com/2015/12/05/oauth2-authorization-server-with-spring-security。 您还可以查看另一个问题:spring-security-oauth2 2.0.7 refresh token UserDetailsService Configuration - UserDetailsService is required
至于你的另一个问题“我想关注请求并查看调用哪些组件以及何时”:我建议您添加日志记录。
(1)在每种方法中添加日志记录
(2)在template<typename T, T default_value = T{}>
class Vec {
// ...
};
Vec<int,42> c1;
Vec<int> c11; // default_value is int{}, that is, 0
Vec<string,"for tytwo"> c2;
Vec<string> c22; // default_value is string{}; that is, ""
中设置安全包的日志级别:
application.properties
(3)添加logging.level.org.springframework.security=DEBUG
:
CommonsRequestLoggingFilter
(4)为CommonsRequestLoggingFilter添加日志级别(在application.properties中):
@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
LOGGER.info("Creating CommonsRequestLoggingFilter");
CommonsRequestLoggingFilter crlf = new CommonsRequestLoggingFilter();
crlf.setIncludeClientInfo(true);
crlf.setIncludeQueryString(true);
crlf.setIncludePayload(true);
return crlf;
}
授权服务器配置下面是我的实现 AuthorizationServerConfigurerAdapter。 JDBC的数据库模式 客户详细信息和令牌服务可以在这里找到。
logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
登录安全配置以下是安全配置 处理用户授权。
@Configuration @EnableAuthorizationServer public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager authenticationManager; @Autowired private DataSource dataSource; @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints.tokenStore(new JdbcTokenStore(dataSource)).authenticationManager(authenticationManager); } @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { clients.jdbc(dataSource); } }