实例介绍
最近的一个项目需要实现双因素强认证,平常我们都是采用 静态密码+动态短信这样的方式来实现,但用户侧并没有相应的短信接口。 后来决定采用 google身份验证器来实现。在网上找了一些资料和代码片段,经过梳理和改造,目前已上线使用了,效果还是比较好的,记录一下,也给需要的朋友做个参考。 项目中只有基本的流程,但可以跑通,只需要结合自身的业务,稍加修改即可使用。 用户名和密码随便输,向导式的引导用户进行初始配置。
【实例截图】
【核心代码】
2e6ca1cb-16df-4978-852d-87fdc1aacfe0
└── GoogleAuthenticator
├── auth
│ ├── getsecretkey.jsp
│ ├── images
│ │ ├── boco_big.png
│ │ ├── boco.png
│ │ └── qr_bg.png
│ ├── index.jsp
│ ├── login.jsp
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── templates
│ │ └── qr
│ │ └── tangwwkSite.png
│ └── WEB-INF
│ ├── applicationContext.xml
│ ├── classes
│ │ └── com
│ │ ├── framework
│ │ │ ├── common
│ │ │ │ ├── BeansFactory.class
│ │ │ │ ├── BocoInitListener.class
│ │ │ │ └── Global.class
│ │ │ ├── QuickResponse
│ │ │ │ └── QRUtil.class
│ │ │ ├── utils
│ │ │ │ └── FilePathUtil.class
│ │ │ └── web
│ │ │ ├── BaseDispatchAction.class
│ │ │ └── EncodeFilter.class
│ │ └── module
│ │ ├── authenticator
│ │ │ ├── pojo
│ │ │ │ ├── UserAuthentPojo.class
│ │ │ │ └── UserSecretPojo.class
│ │ │ ├── service
│ │ │ │ ├── SecretService.class
│ │ │ │ └── SecretServiceImpl.class
│ │ │ ├── utils
│ │ │ │ ├── GoogleAuthenticator.class
│ │ │ │ └── GoogleAuthTest.class
│ │ │ └── web
│ │ │ ├── CheckCodeAction.class
│ │ │ ├── CheckCodeForOpenAction.class
│ │ │ ├── CreateSecretAction.class
│ │ │ └── form
│ │ │ └── CodeForm.class
│ │ └── login
│ │ └── web
│ │ ├── LoginAction.class
│ │ └── LoginForm.class
│ ├── lib
│ │ ├── commons-beanutils-1.7.0.jar
│ │ ├── commons-codec-1.8.jar
│ │ ├── commons-codec.jar
│ │ ├── commons-digester.jar
│ │ ├── commons-lang-2.3.jar
│ │ ├── commons-logging-1.1.1.jar
│ │ ├── com.springsource.org.apache.commons.lang-2.4.0.jar
│ │ ├── com.springsource.org.junit-4.7.0.jar
│ │ ├── json-lib-2.1.jar
│ │ ├── log4j-1.2.14.jar
│ │ ├── org.springframework.asm-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.beans-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.context-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.core-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.expression-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.orm-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.web-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.web.servlet-3.0.1.RELEASE-A.jar
│ │ ├── org.springframework.web.struts-3.0.1.RELEASE-A.jar
│ │ ├── struts.jar
│ │ └── zxing2.2.jar
│ ├── struts-config.xml
│ └── web.xml
└── src
└── com
├── framework
│ ├── common
│ │ ├── BeansFactory.java
│ │ ├── BocoInitListener.java
│ │ └── Global.java
│ ├── QuickResponse
│ │ └── QRUtil.java
│ ├── utils
│ │ └── FilePathUtil.java
│ └── web
│ ├── BaseDispatchAction.java
│ └── EncodeFilter.java
└── module
├── authenticator
│ ├── pojo
│ │ ├── UserAuthentPojo.java
│ │ └── UserSecretPojo.java
│ ├── service
│ │ ├── SecretServiceImpl.java
│ │ └── SecretService.java
│ ├── utils
│ │ ├── GoogleAuthenticator.java
│ │ └── GoogleAuthTest.java
│ └── web
│ ├── CheckCodeAction.java
│ ├── CheckCodeForOpenAction.java
│ ├── CreateSecretAction.java
│ └── form
│ └── CodeForm.java
└── login
└── web
├── LoginAction.java
└── LoginForm.java
42 directories, 70 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论