看书网-sso-core单点登录结构架构

sso-core ,是码家学院自研看书网-sso-core单点登录结构架构 SS奔驰e260O 单点登录结构架构,运用轻量级 JWT 作为 Token 生成方法,JSON 带着用户信息,用户能够自定义 JWT 加密盐,在前后端别离上有着十分有用的成效,注解操控认证办理。

直接引进 core 核心包运用(最新版别1.2.2)

com.majiaxueyuan

sso-core

${version}

完结 SSO 单点登录只需求两步:

第一步:建立共同认证中心(只需求做个登录,登录成功授权 token )

当用户在数据库认证成功往后,只需求调用下面代码,去生成Token就行

生成Token时需求传递四个参数,用户仅有ID,用户名,其他信息(主张JSON,每次恳求原样带着),加密盐

生成成功往后,回来Result,判别code=200时,data便是Token

Result loginSuccess看书网-sso-core单点登录结构架构 = TokenLoginHelper.loginSuccess(id, username, otherJsonInfo, "pwd_salt");

String token = loginSuccess.getData().toString();

第二步:集成项目完结 SSO 认证(增加过滤器)

在分布式服务中咱们只需求增加一个阻拦器就行,增加时需求设置加密盐与认证服务器共同。

如果有多个服务米个服务都需求增看书网-sso-core单点登录结构架构加一个阻拦,就完成了SSO单点登录的机制。

认证时在恳求头中Authorization中带着token信息用于验看书网-sso-core单点登录结构架构证。

@Configuration

public class MaJiaSsoConfig extends WebMvcConfigurerAdapter {

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(ssoIntercepter()).addPathPatterns("/**");

}

@Bean

public MaJiaSSOIntercepter ssoIntercepter() {

return new MaJiaSSOIntercepter().setTokenSalt("pwd_salt");

}

}

咱们供给了根据注解方式的认证操控,当有Mapping不需求认证时,加上注解@NoToken就行

@RequestMapping("/hi")

@NoToken(notNeedToken = true)

public String wei() {

return "hi,no token!";

}

咱们会带着上用户传过来的一切信息(除掉加密盐),用户在恳求中能够用如下代码获取信息

SSOUser user = (SSOUser) request.getAttribute("ssoUser");

SSOUser是核心包供给的用户信息。能够得到除开加密盐之外用户传过来的一切信息。

git地址:https://gitee.com/lxmajia/sso-core

十分简略,十分有用!