Vagi是一款基于CAS(CAS v4)的Web应用单点登录系统.(cas
web https://github.com/Jasig/cas)

  • 对数据库用户存储支持
  • 加入登录验证码
  • 新浪微博和QQ互联的支持
  • 历史登录日志
  • 记住登录username
  • 记住登录

基于CAS v4.0.2

project地址:https://github.com/shimingxy/Vagi

群434469201

登录界面

部署

1、安装Mysql 5.6,创建vagi schema ,把Vagi_mysql.sql导入到vagi中。
用户表

CREATE TABLE `userinfo` (
`ID` varchar(45) NOT NULL,
`USERNAME` varchar(100) NOT NULL,
`PASSWORD` varchar(200) NOT NULL,
`DISPLAYNAME` varchar(45) DEFAULT NULL,
`BADPASSWORDCOUNT` smallint(5) unsigned DEFAULT '0',
`BADPASSWORDTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`PASSWORDLASTSETTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '??',
`UNLOCKTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`ISLOCKED` tinyint(3) unsigned DEFAULT NULL,
`LASTLOGINTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '?? ',
`LASTLOGOFFTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '??',
`LOGINCOUNT` int(10) unsigned DEFAULT '0',
`LASTLOGINIP` varchar(45) DEFAULT NULL,
`STATUS` tinyint(3) unsigned DEFAULT '1',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='?';

登录日志表


CREATE TABLE `login_history` (

`ID` varchar(45) NOT NULL COMMENT '主键',
`USERNAME` varchar(200) NOT NULL COMMENT '登录名',
`DISPLAYNAME` varchar(45) DEFAULT NULL COMMENT '姓名',
`MESSAGE` varchar(200) DEFAULT NULL COMMENT '消息',
`SOURCEIP` varchar(45) DEFAULT NULL COMMENT '操作IP',
`LOGINTIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '认证时间',
`LOGINTYPE` varchar(45) DEFAULT NULL COMMENT '类型',
`UID` varchar(45) NOT NULL COMMENT '用户ID',
`CODE` varchar(45) DEFAULT NULL COMMENT '编码',
`PROVIDER` varchar(45) DEFAULT NULL COMMENT '第三方',
`SESSIONID` varchar(45) DEFAULT NULL COMMENT '会话',
`BROWSER` varchar(45) DEFAULT NULL COMMENT '浏览器版本号',
`PLATFORM` varchar(45) DEFAULT NULL COMMENT '平台',
`APPLICATION` varchar(45) DEFAULT NULL COMMENT '应用程序',
`LOGINURL` varchar(450) DEFAULT NULL COMMENT '登录URL',
`LOGOUTTIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '登出时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='登录日志表';

第三方登录表


CREATE TABLE `socialsignon_users_token` (
`ID` varchar(45) NOT NULL,
`UID` varchar(45) NOT NULL COMMENT '用户id',
`PROVIDER` varchar(45) NOT NULL COMMENT '第三方提供商',
`SOCIALUSERINFO` text NOT NULL COMMENT '''第三方应用的用户信息''',
`SOCIALUID` varchar(100) NOT NULL COMMENT '''第三方应用的用户id''',
`EXATTRIBUTE` text,
`ACCESSTOKEN` text,
`CREATEDDATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`UPDATEDDATE` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`USERNAME` varchar(45) NOT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户和第三方认证提供商的绑定关系';

2、安装TomCat 7.x,配置JDK 7,port号配置为80

tomcat/conf/server.xml


<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

3、vagiproject部署到TomCat

vagi连接数据库配置/vagi/WEB-INF/cas.properties


############################################################################
# DataBase configuration
############################################################################
# JDBC Driver
# for MySql com.mysql.jdbc.Driver
# for oracle oracle.jdbc.driver.OracleDriver
# for DB2 com.ibm.db2.jdbc.app.DB2Driver
# for SqlServer com.microsoft.jdbc.sqlserver.SQLServerDriver
# for SyBase com.sybase.jdbc.SybDriver
# for PostgreSQL org.postgresql.Driver
config.datasource.driverclass=com.mysql.jdbc.Driver
# JDBC URL
# you need database hostname,port,databasename
# for MySql jdbc:mysql://hostname:port/databasename
# for oracle jdbc:oracle:thin:@hostname:port:databasename
# for DB2 jdbc:db2://hostname:port/databasename
# for SqlServer jdbc:microsoft:sqlserver://hostname:port;DatabaseName=databasename
# for SyBase jdbc:sybase:Tds:hostname:port/databasename
#
config.datasource.url=jdbc:mysql://localhost/vagi?autoReconnect=true&characterEncoding=UTF-8
config.datasource.username=root
#connsec
config.datasource.password=connsec

以上參数请依据实际情况配置

4、微博、QQ登录互联配置

配置/vagi/WEB-INF/cas.properties


############################################################################
# Social Sign On Configuration #
#you config client.id & client.secret only
############################################################################ ############################################################################
#sina weibo
config.socialsignon.sinaweibo.provider=sinaweibo
config.socialsignon.sinaweibo.provider.name=\u65B0\u6D6A\u5FAE\u535A
config.socialsignon.sinaweibo.icon=images/social/sinaweibo.png
config.socialsignon.sinaweibo.client.id=1396991563
config.socialsignon.sinaweibo.client.secret=0e2175bf497817466b0b7d0eefb10f57
config.socialsignon.sinaweibo.authorize.url=https://api.weibo.com/oauth2/authorize?client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.sinaweibo.accesstoken.url=https://api.weibo.com/oauth2/access_token
config.socialsignon.sinaweibo.accesstoken.method=POST
config.socialsignon.sinaweibo.scope=all
config.socialsignon.sinaweibo.verifier.code=code
config.socialsignon.sinaweibo.account.url=https://api.weibo.com/2/users/show.json
config.socialsignon.sinaweibo.account.id=id
config.socialsignon.sinaweibo.sortorder=1 #QQ
config.socialsignon.qq.provider=qq
config.socialsignon.qq.provider.name=QQ
config.socialsignon.qq.icon=images/social/qq.png
config.socialsignon.qq.client.id=101225363
config.socialsignon.qq.client.secret=8577d75e0eb4a91ac549cc8be3371bfd
config.socialsignon.qq.authorize.url=https://graph.qq.com/oauth2.0/authorize? client_id=%s&redirect_uri=%s&response_type=code
config.socialsignon.qq.accesstoken.url=https://graph.qq.com/oauth2.0/token
config.socialsignon.qq.accesstoken.method=POST
config.socialsignon.qq.scope=read
config.socialsignon.qq.verifier.code=code
config.socialsignon.qq.account.url=https://graph.qq.com/oauth2.0/me
config.socialsignon.qq.account.id=openid
config.socialsignon.qq.sortorder=2

微博配置

config.socialsignon.sinaweibo.client.id=

config.socialsignon.sinaweibo.client.secret=

QQ配置

config.socialsignon.qq.client.id=

config.socialsignon.qq.client.secret=

5、配置hosts


127.0.0.1 	sso.connsec.com

6、訪问

http://sso.connsec.com/vagi


License
& Copyright

Apache License, Version 2.0.

Vagi单点登录1.0的更多相关文章

  1. jcifs windows 域账户单点登录(转)

    1.首先从http://jcifs.samba.org 这个站点下载 jcifs-1.3.2.jar包. 2.把这个包放到相应的lib文件下面. 3.对web.xml文件进行配置,添加如下内容 < ...

  2. .net core 1.0 实现负载多服务器单点登录

    前言 .net core 出来有一时间了,这段时间也一直在做技术准备,目前想做一个单点登录(SSO)系统,在这之前用.net时我用习惯了machineKey ,也顺手在.net core 中尝试了一上 ...

  3. 实战:ADFS3.0单点登录系列-总览

    本系列将以一个实际项目为背景,介绍如何使用ADFS3.0实现SSO.其中包括SharePoint,MVC,Exchange等应用程序的SSO集成. 整个系列将会由如下几个部分构成: 实战:ADFS3. ...

  4. .NET Core2.0+MVC 用session,cookie实现的sso单点登录

    博主刚接触.NET Core2.0,想做一个单点登录的demo,所以参考了一些资料,这里给上链接: 1.http://www.cnblogs.com/baibaomen/p/sso-sequence- ...

  5. .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...

  6. CAS 4.0 单点登录教程

    CAS 单点登录指导文档 1.概述 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所 ...

  7. spring boot 2.0 集成 shiro 和 pac4j cas单点登录

    新开的项目,果断使用  spring boot  最新版本  2.0.3 ,免得后期升级坑太多,前期把雷先排了. 由于对 shiro 比较熟,故使用 shiro 来做权限控制.同时已经存在了 cas  ...

  8. IdentityServer4之SSO(基于OAuth2.0、OIDC)单点登录、登出

    IdentityServer4之SSO(基于OAuth2.0.OIDC)单点登录.登出 准备  五个Web站点: 1.localhost:5000 :                  认证服务器.2 ...

  9. Liferay7.0与cas单点登录配置

    1.简介     Liferay7.0支持多种登录方式,包括:常规的.opensso.cas.ntlm.ldap.openid.Facebook.Google等. 其中, (1) 常规:则是默认Lif ...

随机推荐

  1. Android中的帧动画与补间动画的使用

    前言 在日常开发中,我们有时候须要一些好看的动画效果,这时能够充分利用Android提供的这几种动画来实现. Android提供了3种类型的动画: 补间动画:补间动画能够应用于View,让你能够定义一 ...

  2. 108.sqllite3(C语言数据库库)详解

    //创建数据库,插入表,生效 //创建数据库,插入表,生效 void create_database() { //数据库指针 sqlite3 *db=; //打开数据数据库,初始化指针 int res ...

  3. 1.2 Use Cases中 Website Activity Tracking官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Website Activity Tracking 网站活动追踪 The origi ...

  4. 【习题 6-5 UVA-1600】Patrol Robot

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 设dis[x][y][z]表示到(x,y)连续走了z个墙的最短路 bfs一下就ok [代码] /* 1.Shoud it use l ...

  5. Altium Designer 在pcb下导入的原件引脚是绿的

    当然也可能是其他规则原因导致的

  6. JS实现放大镜效果(放大图片)

    注意:里边的两张图片(一大一小)可以自己添加,JQ采用jquery-1.11.3.js版,也可自行调换. HTML代码: <!DOCTYPE html> <html> < ...

  7. 【AtCoder Beginner Contest 074 C】Sugar Water

    [链接]h在这里写链接 [题意] 让你在杯子里加糖或加水. (4种操作类型) 糖或水之间有一定关系. 糖和水的总量也有限制. 问你糖水浓度的最大时,糖和糖水的量. [题解] 写个dfs就好. 每次有4 ...

  8. JavaFX2 - 文本可复制的Label

    背景介绍 我的公司和我个人一直都使用JavaFX2来编写client应用程序,同一时候也作为Applet在浏览器中执行. 我们的客户以前拿我们的产品和网页对照,然后向我们提过两个需求: (1) 希望界 ...

  9. Oracle分页查询的一个存储过程:

    create or replace procedure AspNetOraclePager(       tableName in varchar2, --表名       fields in var ...

  10. bootstrap 时间控件带(时分秒)选择器(需要修改才能显示,请按照参数说明后面的步骤进行修改)

    1.控件下载地址:http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm,参数设置说明也在这个链接下面: 2.具体参数说明(复制原链接) ...