public class SSOHelper extends Object
SSO 帮助类
| 限定符和类型 | 字段和说明 |
|---|---|
protected static ConfigurableAbstractKissoService |
kissoService |
| 构造器和说明 |
|---|
SSOHelper() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T extends SSOToken> |
attrToken(javax.servlet.http.HttpServletRequest request)
从请求中获取 token 通过登录拦截器之后使用
该数据为登录拦截器放入 request 中,防止二次解密 |
static boolean |
clearLogin(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
清理当前登录状态
清理 Cookie、缓存、统计、等数据 |
static void |
clearRedirectLogin(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
退出重定向登录页,跳至 sso.properties 配置的属性 sso.login.url 地址
|
static ConfigurableAbstractKissoService |
getKissoService()
Kisso 服务初始化
|
static String |
getSecretKey()
生成 18 位随机字符串密钥
替换配置文件 sso.properties 属性 sso.secretkey=随机18位字符串 |
static <T extends SSOToken> |
getSSOToken(javax.servlet.http.HttpServletRequest request)
获取当前请求 token
该方法直接从 cookie 中解密获取 token, 常使用在登录系统及拦截器中使用 getToken(request) 如果该请求在登录拦截器之后请使用 attrToken(request) 防止二次解密 |
static String |
getTokenCacheKey(javax.servlet.http.HttpServletRequest request)
获取 token 的缓存主键
|
static String |
getTokenCacheKey(Object userId)
获取 token 的缓存主键
|
static boolean |
kickLogin(Object userId)
踢出 指定用户 ID 的登录用户,退出当前系统。
|
static void |
logout(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
退出登录, 并且跳至 sso.properties 配置的属性 sso.logout.url 地址
|
static void |
setCookie(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
SSOToken ssoToken,
boolean invalidate)
设置加密 Cookie(登录验证成功)
最后一个参数 true 销毁当前JSESSIONID. |
protected static ConfigurableAbstractKissoService kissoService
public static ConfigurableAbstractKissoService getKissoService()
public static String getSecretKey()
生成 18 位随机字符串密钥
替换配置文件 sso.properties 属性 sso.secretkey=随机18位字符串
public static void setCookie(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
SSOToken ssoToken,
boolean invalidate)
设置加密 Cookie(登录验证成功)
最后一个参数 true 销毁当前JSESSIONID. 创建可信的 JSESSIONID 防止伪造 SESSIONID 攻击
最后一个参数 false 只设置 cookie
request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, maxAge);request - response - ssoToken - SSO 票据invalidate - 销毁当前 JSESSIONIDpublic static <T extends SSOToken> T getSSOToken(javax.servlet.http.HttpServletRequest request)
获取当前请求 token
该方法直接从 cookie 中解密获取 token, 常使用在登录系统及拦截器中使用 getToken(request)
如果该请求在登录拦截器之后请使用 attrToken(request) 防止二次解密
request - public static <T extends SSOToken> T attrToken(javax.servlet.http.HttpServletRequest request)
从请求中获取 token 通过登录拦截器之后使用
该数据为登录拦截器放入 request 中,防止二次解密
request - 访问请求public static void logout(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws IOException
退出登录, 并且跳至 sso.properties 配置的属性 sso.logout.url 地址
request - response - IOExceptionpublic static boolean clearLogin(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
清理当前登录状态
清理 Cookie、缓存、统计、等数据
request - response - public static void clearRedirectLogin(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws IOException
退出重定向登录页,跳至 sso.properties 配置的属性 sso.login.url 地址
request - response - IOExceptionpublic static String getTokenCacheKey(javax.servlet.http.HttpServletRequest request)
获取 token 的缓存主键
request - 当前请求public static String getTokenCacheKey(Object userId)
获取 token 的缓存主键
userId - 用户IDpublic static boolean kickLogin(Object userId)
踢出 指定用户 ID 的登录用户,退出当前系统。
userId - 用户ID