Spring Security Oauth2核心组件之ClientDetailsService
一、客户端
public interface ClientDetails extends Serializable { String getClientId();//客户端id Set<String> getResourceIds();//此客户端可以访问的资源。如果为空,则调用者可以忽略 boolean isSecretRequired();//验证此客户端是否需要secret String getClientSecret();//获取客户端的secret boolean isScoped();//此客户端是否仅限于特定范围 Set<String> getScope();//此客户端的范围。如果客户端未确定作用域,则为空 Set<String> getAuthorizedGrantTypes();//此客户端被授权的授权类型 Set<String> getRegisteredRedirectUri();//此客户端的预定义重定向redirect_url Collection<GrantedAuthority> getAuthorities();//权限集合 Integer getAccessTokenValiditySeconds();//访问令牌有效期 Integer getRefreshTokenValiditySeconds();//刷新令牌有效期 boolean isAutoApprove(String scope);//测试客户端是否需要特定范围的用户批准 Map<String, Object> getAdditionalInformation();//额外的信息 }
他只有一个子类BaseClientDetails
二、操作客户端
public interface ClientDetailsService { //通过clientId获取客户端详情信息 ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException; }
与 UserDetailsService 的注册方式类似, 需要在 AuthorizationServerConfigurationAdapter#configure(ClientDetailsServiceConfigurer clients) 中指定自定义的 ClientDetailsService:
@Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { // @formatter:off clients.withClientDetails(clientDetailsService); // @formatter:on }
下一篇:
vue 封装时间格式处理