1.先自定义 TokenServices方法

/**
     * <p>注意,自定义TokenServices的时候,需要设置@Primary,否则报错,</p>
     *
     * @return
     */
    @Primary
    @Bean
    public DefaultTokenServices defaultTokenServices() {
        DefaultTokenServices tokenServices = new DefaultTokenServices();
        tokenServices.setTokenStore(tokenStore());
        tokenServices.setSupportRefreshToken(true);
//        tokenServices.setClientDetailsService(customClientDetailsService);
        // token有效期自定义设置,90天
        tokenServices.setAccessTokenValiditySeconds(60 * 60 * 24 * 90);
        // refresh_token 90天
        tokenServices.setRefreshTokenValiditySeconds(60 * 60 * 24 * 90);
        return tokenServices;
    }

2. 然后在configure,添加endpoints.tokenServices(defaultTokenServices());

@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
    endpoints
            .allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
            .authenticationManager(authenticationManager)
            .approvalStore(approvalStore())
            .tokenStore(tokenStore())
            .tokenEnhancer(tokenEnhancer())
            .reuseRefreshTokens(false)
            .userDetailsService(userDetailsService)
            .accessTokenConverter(OpenHelper.buildAccessTokenConverter())
            .authorizationCodeServices(authorizationCodeServices());
    endpoints.setClientDetailsService(customClientDetailsService);
    endpoints.tokenServices(defaultTokenServices());

    // 自定义确认授权页面
    endpoints.pathMapping("/oauth/confirm_access", "/oauth/confirm_access");
    // 自定义错误页
    endpoints.pathMapping("/oauth/error", "/oauth/error");
    // 自定义异常转换类
    endpoints.exceptionTranslator(new OpenOAuth2WebResponseExceptionTranslator());
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐