`
shimingxy
  • 浏览: 13064 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Web Sign(WSign) v1.0 released

阅读更多

Web Sign(WSign)

Version 1.0 GA

Blog : http://shimingxy.blog.163.com/

github:https://github.com/shimingxy/WSign

Welcome to the home of the Web Sign project, more commonly referred to as WSign.

Web Sign is the Single Sign On applications for web applications .

Web Sign Based on browser cookie and http post

Web Sign简称为WSign,是一款基于浏览器Cookiehttp post的Web应用单点登录系统.

WSign采用流行的加密和签名的技术保障单点登录的安全性.

  • An open and well-documented/开放具有良好文档
  • An open-source Java server component/基于JAVA EE开源产品
  • A library of clients for Java, .Net others/支持客户端Java, .Net 其他
  • License at Apache License, Version 2.0 /开源免费

Protocol

  • Cookie Based Token(wc),Token transmit by browser cookie /基于Cookie认证,通过浏览器Cookie传递Token
  • Token Based Token(wt),Post token to target via http post method/通过HTTP POST的方式提交Token到目标应用

Token

1)Original Token 原始格式

[登录用户名]@@[Token过期时间(UTC)]
[login username]@@[Token expire date time(UTC)]

wsignuser@@2015-04-24T16:56:32.402+08:00

2)Encryption,then to HEX ,algorithm support DES,DESede,Blowfish and AES 加密格式,加密处理完成后,转换为HEX格式,加密方法DES,DESede,Blowfish and AES

6d4a75efc32a791643fc73686f95a6fe2cc0175756bc4fb7978d7f84c2955f5aeecf991722e641e3

3)Base64URL Token 编码格式Base64URL

NmQ0YTc1ZWZjMzJhNzkxNjQzZmM3MzY4NmY5NWE2ZmUyY2MwMTc1NzU2YmM0ZmI3OTc4ZDdmODRjMjk1NWY1YWVlY2Y5OTE3MjJlNjQxZTM

4)Signature签名格式 Signature step 3 Token 对第3步得到的数据进行签名

f8p75vJ_4KQpi55nygVp0yZ5lSE_5pcdAP6Eq7LhRax0_wbUK3X5EWfysvNb6V4nfLnGmcxE0hgi7miAZ1UOb92wb2CyTCLwSJQ2YLtQaWW49RVr7JUwvkMASLpWR4FPpRh3UmO87fx_KbxfFVzwsvu-Fy0lcIB-aQ5cl-JOgxU

Key Format 证书格式:JSON Web Key (JWK) 参见源代码 src/keystore.jwks,含公钥和私钥,WebRoot/key/jwk仅含公钥

Signature Algorithms 签名方法: JSON Web Algorithms (JWA)

 RS256        | RSASSA-PKCS-v1_5 using SHA-256    | Recommended    |

5)Transmit Token传递数据

Format [Base64URL Token].[Signature] or [Base64URL Token].
格式:[Base64URL编码].[签名] or [Base64URL编码].
NmQ0YTc1ZWZjMzJhNzkxNjQzZmM3MzY4NmY5NWE2ZmUyY2MwMTc1NzU2YmM0ZmI3OTc4ZDdmODRjMjk1NWY1YWVlY2Y5OTE3MjJlNjQxZTM.f8p75vJ_4KQpi55nygVp0yZ5lSE_5pcdAP6Eq7LhRax0_wbUK3X5EWfysvNb6V4nfLnGmcxE0hgi7miAZ1UOb92wb2CyTCLwSJQ2YLtQaWW49RVr7JUwvkMASLpWR4FPpRh3UmO87fx_KbxfFVzwsvu-Fy0lcIB-aQ5cl-JOgxU

备注:第2步和第4步为备选,建议同时使用

MEM: step 2 and step 4 is option,but Recommended

Token Name[Token名称]

WSign_Token

Token Parse[Token解析]

1)Token split 签名分离
    "."before is Token,after is Signature
    "."前半部分为Token数据,后半部分为签名
2)Validate Signature 验证签名
    
3)Decode Base64URL Token Base64URL Token解码
    
4)Decode encrypted Token 解密加密Token数据
    
5)Parse username & authentication time(UTC format) 解析用户名和Token过期时间(UTC)
    
6)Validate authentication time(UTC format) 验证Token认证时间
    if after now,valid,else invalid 
    大于当前时间,正确;小于当前时间,失效

备注:如果未签名,省略第2步;若果未加密省略第4步

MEM :if not Signature,skip step 2; if not Encryption skip step 4

SSO Paramenter[认证参数说明]

http://login.connsec.com:8080/wsign/login?target=http://login.connsec.com:8080/wt/index.jsp&wsign=wt
target     单点登录的目标地址
wsign      协议,可选值wc or wt
relaystate 状态值,由应用提供

WebApps Setting [目标应用配置]

src/wsignapps.json

{
    "WSignApps":
        [
            {
              "target": "http://login.connsec.com:8080/wc/index.jsp",//目标地址
              "client_secret": "KOHaEcb8",                           //加密密钥
              "method": "wc",                                        //协议
              "expires": "2",                                        //有效期
              "encrypt": "true",                                     //是否加密
              "algorithm": "DES",                                    //加密方法
              "sign": "true"                                         //是否签名
            }
        ]
}

System Setting[系统配置]

1)wsign.properties

config.datasource.driverclass                        //数据库驱动
config.datasource.url                                //数据库访问地址
config.datasource.username                           //数据库用户名
config.datasource.password                           //数据库密码
config.authentication.provider                       //认证提供者
config.query.userinfo.sql                            //用户查询SQL
config.base.domain                                   //应用Cookie域
config.characterencoding.encoding                    //系统编码

Internationalization[国际化支持]

src/i18n

MessageBundle.properties
MessageBundle_en.properties
MessageBundle_zh_CN.properties

License & Copyright

Apache License, Version 2.0 , see LICENSE for details.

分享到:
评论

相关推荐

    WSign:基于浏览器 cookie 和 http post 的单点登录 (SSO)

    #Web Sign(WSign)###Version 1.0 GABlog : Welcome to the home of the Web Sign project, more commonly referred to as WSign.Web Sign is the Single Sign On applications for web applications .Web Sign Based...

    Java实战项目——基于ssh实现的博客系统(毕业设计)(前后端源码+论文+数据库+说明文档)25.zip

    ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

    基于React的后台开发框架(javascript)

    【作品名称】:基于React的后台开发框架(javascript) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:运行Demo cd tui/example npm install node app.js open localhost:3003/be 说明 simditor文件夹为TUI依赖的编辑器插件,如果用到编辑器,页面引入simditor.all.min.js和simditor.css即可。

    吴力群 231123501129.pdf

    吴力群 231123501129.pdf

    PC下C语言基于libgraphics和浙江大学simplegui写出的新版吃豆人,仅用于教学和交流.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    SQL语言教程,包含了所有基础的SQL语句

    SQL语言教程,包含了所有基础的SQL语句

    PHP公共课平时成绩查询系统(源代码+论文+答辩PPT).zip

    PHP公共课平时成绩查询系统(源代码+论文+答辩PPT).zip

    vue开发简介及基础教程及特点阐述.rar

    vue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述.rarvue开发简介及基础教程及特点阐述

    焊工申请考试名单表格.docx

    焊工申请考试名单表格.docx

    chromedriver-win64_118.0.5950.0.zip

    chromedriver-win64_118.0.5950.0.zip

    用户界面设计-滑动选项卡-交互组件-用户体验-滑动选项卡小程序.zip

    本资源提供了一个滑动选项卡组件的小程序开发指南和完整源码,该组件设计用于提升用户界面的交互性和视觉体验。滑动选项卡允许用户通过简单的滑动动作在不同的视图或内容区域之间切换,非常适合于需要展示多个相关内容的应用场景。 主要特点: 流畅的滑动切换:实现平滑的滑动切换效果,提升用户的操作体验。 高度可配置:支持自定义选项卡的数量、颜色、大小和内容,满足不同设计需求。 响应式设计:确保组件在不同设备上均能良好展示,包括手机和平板。 易于集成:提供简单明了的API,使得开发者可以轻松地将此组件集成到现有小程序中。 技术实现: 前端技术:基于微信小程序平台,使用其标准的开发工具和语言,如WXML、WXSS和JavaScript,以实现响应式和交互式的用户界面。 动画效果:利用CSS3和微信小程序的动画API实现平滑的滑动动画。 性能优化:确保组件的性能高效,响应快速,不会拖慢小程序的整体性能。 应用场景:新闻阅读应用:适用于新闻或文章类小程序,用户可以滑动在不同分类的新闻之间切换。

    扫雷小游戏(JAVA SE).zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    营销策划 -植物主义牛油果身体乳小红书营销全案-规划.pdf

    营销策划 -植物主义牛油果身体乳小红书营销全案-规划.pdf

    基于STM32的嵌入式任务调度库

    基于STM32的嵌入式任务调度库

    基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本124.0.6363.0)

    资源包括: 1.Java爬虫实战代码 2.selenium学习笔记 3.代码演示视频 4.谷歌浏览器chrom124.0.6363.0 chrome-linux64.zip chrome-mac-arm64.zip chrome-mac-x64.zip chrome-win32.zip chrome-win64.zip 5.谷歌浏览器驱动器Chromedriver124.0.6363.0 chromedriver-linux64.zip chromedriver-mac-arm64.zip chromedriver-mac-x64.zip chromedriver-win32.zip chromedriver-win64.zip 特别说明:Chrome 为测试版(不会自动更新) 仅适用于自动测试。若要进行常规浏览,请使用可自动更新的标准版 Chrome。)

    大件运输施工项目安全质量管理课件宣传资料(工程机械有限公司简介).pptx

    大件运输施工项目安全质量管理课件宣传资料(工程机械有限公司简介).pptx

    一个C语言实现的基于HTTP的文件管理服务器.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    C# Winform在图片上添加自定义螺丝控件,并调整位置

    1、自定义螺丝控件 2、动态调整控件位置 3、给自定义控件编号,并添加相关属性和事件 4、支持鼠标框选多个控件

    计算机毕业设计-ASP网上书店管理系统(源代码+LW).zip

    计算机毕业设计资源包含(项目部署视频+源码+LW+开题报告等等),所有项目经过助教老师跑通,有任何问题可以私信博主解决,可以免费帮部署。

    springboot公司日常考勤系统.rar

    v公司日常考勤系统的实现 1、用户注册登录 为了保证该系统只为有限员工提供考勤服务,因此要求所有被考勤员工必须先进行注册,注册成功之后,需要登录考勤系统,这样才能保证考勤数据准确与个人信息关联。在设计中,将用户注册与员工登录两个部分一起考虑,因为涉及到的数据库表结构是相同的,都是对同一个账号表进行操作。 2、考勤管理 考勤管理主要负责对考勤策略的维护工作,比如定义考勤时间点,考勤基点位置等参数,查询当前所有考勤基点,可以通过名称查询。 3、员工信息管理 员工信息管理模块,主要完成员工个人信息管理功能,这些信息就是员工基本信 息:员工编号、员工姓名、员工性别、所在部门、个人职位、联系邮箱、家庭住址、在职情况等信息。 4、考勤记录管理 考勤记录管理模块,主要是提供给被考勤员工进行个人考勤记录浏览,在考勤过程中,记录下来的考勤时间与考勤位置,将与员工编号、员工部门、员工姓名等信息共同生成考勤记录,并存储考勤记录表中。 5、密码管理 用户密码管理模块,主要完成个人密码修改的功能。

Global site tag (gtag.js) - Google Analytics