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. Express框架是什么

    Express框架是什么 一.总结 1.express框架:基于node.js的web应用框架,可快速搭建一个完整功能的网站,丰富的HTTP工具以及来自Connect框架的中间件随取随用. 二.Exp ...

  2. 数据类型的提升(promotion)

    假如参与运算的数据类型不同或者取值范围过小,编译器会自动将其转换为相同的类型,这个类型就叫数据类型的提升(promotion). 1. C++ 语言环境的规定 unsigned char a = 17 ...

  3. 福昕pdf阅读器如何删除所有注释

    然后选中第一个 移动到最后按住shift,选择最后一个, 总之就是选中所有的 然后右键,点击删除即可. 不要忘记保存呦

  4. Oracle学习总结(9)—— Oracle 常用的基本操作

    创建用户,相当于在sqlServer中创建一个数据库  create user 用户名 identified by 密码  修改用户密码  alter user 用户名 identified by 新 ...

  5. 8、for 、emumrate、range、if

    1.for循环用户按照顺序循环可迭代对象中的内容,PS:break.continueli = [11,22,33,44]for item in li: print item 2.enumrate 为可 ...

  6. window.print()打印网页(一)

    有时候需要将网页内容打印到纸上,最简单的一种方法是用window对象的print方法. window.print()默认打印当前网页的所有部分.(除了背景,默认打印都是白底黑字,如果有特别的设置 要另 ...

  7. 【z12】&&【b092】hankson的趣味问题

    描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现 在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解了 ...

  8. ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件

    ORACLE RMAN备份及还原   RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...

  9. kafka集群原理介绍

    目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...

  10. 11、DMA操作说明

    先理解cache的作用CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容:否则,就 称为“ 不命中”,CPU只好去内 ...