单点登录(SSO)

  1. 参考

登录那些事儿 http://cnodejs.org/topic/5671441a1d2912ce2a35aaa1

基于OAuth2.0的单点登录系统 - 豆丁网 http://www.docin.com/p-935500768.html

统一用户认证和单点登录解决方案_百度文库 http://wenku.baidu.com/link?url=TOS9NqZ9GMWZMSh2t-bCABG7ylM0k_eSj-Y4IGq7LUWJwPMGTrXfKLgO6CEtjXEpjCyt_m9MBFV-sRiq-XqLwK3Xbui8W0bKAI9x14rW2J7

  1. 判断用户是否登录
    1. 方法一:filter

Web.xml

<filter>
  <filter-name>SessionFilter</filter-name>
  <filter-class>net.zontin.ynsignature.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>SessionFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

SessionFilter.java

doFilter方法中:加入session值的判断

完整例子参见:http://blog.csdn.net/judge0531/article/details/1547581

 

    1. 方法二:在每个入口对session中的变量进行判断
    2. 方法三:用session监听是否可以呢?
  1. 单点登录

单点登录就是网络上的“通行证”,通过登录某一站点,可访问其它裙带站点。通行证是业务上的称呼。

英文是SSO,全称Single Sign On。

个人认为单点登录是一个需求或是目标,其实现方法根据当前系统情况、附加要求的不同,有不同的实现方法。

    1. Portal

Portal中文意思是门户,是广义的交互平台的概念,可以包含:以内容展示为主的WEB网站,也包括以CALL CENTER为代表的接入,还包含WAP的接入等。

    1. OpenID
    2. CAS

CAS组成:

CAS server:需要独立部署的web应用。

CAS client:各个web应用系统,cas支持多种语言的web应用,包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

 

Cas的认证时序图:

 

    1. Oauth

包括:开放授权平台(提供Oauth授权服务,如腾讯微博开放平台)、应用(某个使用开放授权平台的网站,通常称为第三方)、用户。

 

典型示意图:

 

Oauth提供了开放授权的协议和标准。类似于API,本身并未提供实现。

 

 

 

  1. 单点登录(服务端)

JSON Web Token (JWT)  http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html

 

  1. josn web token

 

       八幅漫画理解使用JSON Web Token设计单点登录系统

       java实现:https://github.com/unbroken-dome/jsonwebtoken,基于jdk8特性开发,注意运行开发环境,api比较碎,不好上手。

                       https://github.com/auth0/java-jwt

       使用Json Web Token设计Passport系统

 

 

颁发json web token时,使用用户的登录密码作为签名秘钥。

 

  1. jwt规范:

组成:header.payload.signature,JWT 标准的 Token 有三个部分,三个部分中间用点分隔开,并且每部分都使用 Base64 编码。

 

header包含两个标准字段

       typ:token类型

       alg:使用的算法

 

payload包含标准字段和自定义字段两种

       标准字段:

              iss:Issuer,发行者
              sub:Subject,主题
              aud:Audience,观众
              exp:Expiration time,过期时间
              nbf:Not before
              iat:Issued at,发行时间
              jti:JWT ID

       自定义字段:业务字段

signature:首先将Base64编码后的Header和Payload用.连接在一起,对这个字符串使用HmacSHA256算法及秘钥进行加密,生成签名字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值