All Projects → monkeyk → Oauth2 Shiro

monkeyk / Oauth2 Shiro

Licence: apache-2.0
Integrate OAuth2(oltu) and Shiro

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Oauth2 Shiro

Buji Pac4j
pac4j security library for Shiro: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 444 (+149.44%)
Mutual labels:  oauth, shiro
Pac4j
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 2,097 (+1078.09%)
Mutual labels:  oauth, shiro
Okhelper Service
OK帮 云进销存 (SpringBoot Restful 全家桶)
Stars: ✭ 146 (-17.98%)
Mutual labels:  shiro
Spring Boot Cloud
基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目
Stars: ✭ 2,044 (+1048.31%)
Mutual labels:  oauth
Portfolio Generator
HoxNox - Portfolios Made Easy, Generate portfolios in 3 easy steps
Stars: ✭ 166 (-6.74%)
Mutual labels:  oauth
Larapush
artisan push - Deploy your codebase into your web server with one Laravel artisan command and no SSH needed!
Stars: ✭ 150 (-15.73%)
Mutual labels:  oauth
Ngx Oauth
OAuth 2.0 proxy for nginx written in Lua.
Stars: ✭ 146 (-17.98%)
Mutual labels:  oauth
Ssm
👅基于RESTful风格的前后端分离的SSM框架,集成了shiro和swagger等框架
Stars: ✭ 141 (-20.79%)
Mutual labels:  shiro
Spring Boot Shiro
Apache Shiro integration with Spring Boot.
Stars: ✭ 177 (-0.56%)
Mutual labels:  shiro
Security.identity
.NET DevPack Identity is a set of common implementations to help you implementing Identity, Jwt, claims validation and another facilities
Stars: ✭ 165 (-7.3%)
Mutual labels:  oauth
Indieauth.com
This service is being discontinued in favor of indielogin.com
Stars: ✭ 172 (-3.37%)
Mutual labels:  oauth
Turnstile
An authentication framework for Swift.
Stars: ✭ 163 (-8.43%)
Mutual labels:  oauth
Ifarm
后台管理系统,前后端分离,后端SpringBoot+Shiro+MyBatis+Redis,前端Vue+ElementUI+Axios
Stars: ✭ 151 (-15.17%)
Mutual labels:  shiro
Liugh Parent
SpringBoot+SpringCloud Oauth2+JWT+MybatisPlus实现Restful快速开发后端脚手架
Stars: ✭ 2,112 (+1086.52%)
Mutual labels:  shiro
Spring Boot Plus
🔥 Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. 🚀
Stars: ✭ 2,198 (+1134.83%)
Mutual labels:  shiro
Monkey
Monkey is an unofficial GitHub client for iOS,to show the rank of coders and repositories.
Stars: ✭ 1,765 (+891.57%)
Mutual labels:  oauth
Crown
Based on SpringBoot2, Crown builds a rapidly developed web application scaffolding.
Stars: ✭ 161 (-9.55%)
Mutual labels:  shiro
Ssm shiro blog
spring+springmvc+mybatis+shiro整合DEMO.后台管理,权限管理
Stars: ✭ 167 (-6.18%)
Mutual labels:  shiro
Home
Welcome to Janssen: the world's fastest cloud native identity and access management platform
Stars: ✭ 176 (-1.12%)
Mutual labels:  oauth
Angular Google Gapi
An AngularJS module for using all Google Apis and your Google Cloud Endpoints (Google App Engine) with OAuth. This module uses Google APIs Client Library for JavaScript, available for all GApis.
Stars: ✭ 176 (-1.12%)
Mutual labels:  oauth

#oauth2-shiro

整合Apache OltuShiro. 提供一个轻量的OAUTH2应用框架.

并根据不同的应用场景提供不同的实现(如web场景,移动设备).

该项目与spring-oauth-server实现相同的需求与场合. 只是在实现上使用的技术不同(spring-oauth-server使用Spring Security + spring-security-oauth2实现; oauth2-oltu实现); 相比spring-oauth-server, oauth2-oltu具有如下特点:

  • 更加透明 -- 每一步实现都有可以查看的, 更容易理解的源代码, 一目了然

  • 更多的可自定义与可扩展 -- 不管是ERROR返回信息的内容或格式, 都可根据需要自定义, 对请求参数,处理细节等可添加更多的具体实现

  • 可读性更强 -- 由于Shiro, Oltu 没有Spring Security,spring-security-oauth2 的门槛高, 所有代码都是常用的Controller或Java Bean实现各项业务, 更可读,更易于理解

  • 模块化 -- 得益于Oltu的模块化设计, 将authz, resources分开成不同的模块, 使用时可根据实际需要将二者合并在一个项目中或拆分为不同的模块


OAuth2下一代身份认证授权协议OIDC实现: MyOIDC

主要技术及版本

Spring -- 3.2.2.RELEASE
oltu -- 1.0.2
shiro -- 1.2.3
MySQL -- 5.6

开发环境

  • JDK -- 1.7.0_40

  • Maven -- 3.1.0

  • MySQL -- 5.6.23-log


项目模块说明

oauth2-shiro项目使用模块化开发, 以实现"高内聚, 低耦合"目标, 更符合实际项目需要; 分为三个模块: authz, core 与 resources, 具体说明如下

  • authz 实现使用各类grant_type去获取token业务逻辑----获取access_token

  • core 将公共部分提取到该模块中, 减少重复代码, 保证一致性, 如定义ClientDetails, AccessToken; authz, resources 模块都依赖于该模块

  • resources 资源管理模块,将受OAUTH保护的资源(URI)放在这里----使用access_token

在线测试

如何使用

  1. 项目是Maven管理的, 需要本地安装maven(开发用的maven版本号为3.1.0), 还有MySql(开发用的mysql版本号为5.6)
  2. 下载(或clone)项目到本地
  3. 项目由三个模块(core,authz,resources)组成, core是一个Java项目(jar), authz与resources是Java Web项目(.war)
  4. 创建MySQL数据库(如数据库名 oauth2_shiro), 并运行相应的SQL脚本(脚本文件位于others/database目录),
    运行脚本的顺序: oauth2-shiro.ddl -> initial-db.ddl
  5. 依次修改authz模块的配置文件authz.properties(位于模块的src/main/resources目录)与resources模块的配置文件resources.properties(位于模块的src/main/resources目录); 修改配置文件中的数据库连接信息(包括username, password等), 都连接到数据库oauth2_shiro
  6. 将本地项目导入到IDE(如Intellij IDEA)中,配置Tomcat(或类似的servlet运行服务器), 并启动Tomcat(默认端口为8080);
    注意将项目的 contextPath(根路径) 设置为 'os'.
    另: 也可通过maven package命令将项目编译为war文件(os.war), 注意编译时每个模块的pom.xml文件中配置的数据库连接信息, 可在Maven命令中添加 -Dmaven.test.skip=true 忽略测试; 将authz模块与resources模块生成的war放在Tomcat中并启动(注意: 这种方式需要将 authz.properties与resources.properties 加入到classpath中并正确配置数据库连接信息).
  7. 参考oauth_test.txt(位于others目录)的内容并测试之(也可在浏览器中访问相应的地址,如: http://localhost:8080/os/).

支持的 grant_type
说明 oauth2-shiro 项目支持的grant_type(授权方式)与功能
  1. authorization_code -- 授权码模式(即先登录获取code,再获取token)
  2. password -- 密码模式(将用户名,密码传过去,直接获取token)
  3. refresh_token -- 刷新access_token
  4. implicit(token) -- 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
  5. client_credentials -- 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向'服务端'获取资源)

开发计划

从 0.2版本开始将项目的所有计划的开发内容列出来, 方便大家跟进, 也欢迎你加入.
项目的开发管理使用开源项目 andaily-developer.

计划加入Spring-Boot的实现

  • Version: 0.3 [pending]
    Date: 2016-07-16 / ------

    1. (152) - oltu版本升级到1.0.2 并完成测试.

    2. (153) - 尝试添加并实现OIDC在 oauth2-shiro中

    3. (161) - 增加必要的代码注释与配置注释, 更易理解

    4. implicit模式不需要带上client_secret


  • Version: 0.2 [finished]
    Date: 2016-05-26 / 2016-07-03

    1. (66) - 更新首页UI, 参照spring-oauth-server

    2. (67) - client details overview

    3. (68) - client details testing

    4. (69) - user add/edit, overview

    5. (70) - 添加API使用说明, 举例各个场景

    6. (71) - 发布到测试服务器

    7. (72) - resources模块更新UI说明



Project Log

  1. 2015-05-17 Initial project, start push code (private)

  2. 2015-07-16 oauth2-shiro项目开发状态(7月)

  3. 2015-09-06 oauth2-shiro项目开发状态(8月)

  4. 2015-09-06 项目由 私有 变为 开源, 开发 resource 模块

  5. 2015-09-26 版本0.1 开发完毕, 发布 0.1-beta 版本

  6. 2015-10-07 重构项目结构, 发布 0.1-rc 版本

  7. 2016-05-26 开始开发 0.2 版本

  8. 2016-07-02 添加在线测试环境

  9. 2016-08-17 发布 0.2 版本

  10. 2017-01-21 加入到GitHub中, [email protected]地址: http://git.oschina.net/mkk/oauth2-shiro



姊妹项目


与Oauth2相关的技术文章请访问 http://andaily.com/blog/?cat=19 (不断更新与Oauth相关的文章)

问答与讨论
与项目相关的,与Oauth相关的问题与回答,以及各类讨论请访问
http://andaily.com/blog/?dwqa-question_category=oauth


捐助
支付宝: [email protected] (**钊)
明瑞 -- 5元
Triton -- 8.8元
   半个鼠标 -- 10元
张宏俊 -- 20元 (2018-03-28)


关注更多我的开源项目请访问 http://andaily.com/my_projects.html

若需更多的商业技术支持请联系 [email protected] 或访问 http://monkeyk.com/kso/

WeChat

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].