用户是否登录到SSO需要考虑两种情况,是否在当前平台登录,一般直接判断本地session中是否有用户信息即可;另一种情况是该用户是否在其他平台登录过,这种情况是通过本地的TGC来重定向到SSO服务器去判断。默认情况下如果经SSO服务器验证后发现没登录会302重定向到配置的统一认证页,而excludedURLs这个字段内的url虽然也需要去SSO服务器去验证是否登录过,但是如果没登录过也不会强制跳转,而是直接渲染当前页面。适用的场景:门户页等。与之相类似的字段是**whiteURLs**,该字段完全不会无SSO服务器检查用户状态,完全依赖会话信息里的用户登录状态。
该字段是session共享的实现类,SDK内提供了redis和cookie进行session共享的方案,redis共享时该值为
com.iflytek.edu.ew.session.RedisSessionProvider,cookie共享时该值为
com.iflytek.edu.ew.session.CookieSessionProvider。初次之外也提供了接口类供开发者实现更灵活的、
适合平台的session共享类,接口类的名称为_SessionProvider_,需要实现的方法如下:
// 获取session
Map< String, Object> getSession(String key,HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse);
// 存储session
void saveSession(String key, Map< String, Object> session,HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse);
// 移除session
void removeSession(String key,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);