springMVC+Spring Security+OAuth2.0如何自定义获取token

u012917558 2015-07-23 10:03:41
大家好:
我现在写个项目需要是Restful风格的,需要使用Spring Security+OAuth2.0配置保护资源,看了很久Spring的demo还不知道如何使用,不知道如何获取token和更新token,等配置授权服务器。这个授权服务器我需要单独分出来。
请各位知道的帮忙指点。在此谢谢大家
...全文
3404 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxy94 2016-12-15
  • 打赏
  • 举报
回复
楼主你弄出来了吗?可以借鉴一下吗?
qwe520liao 2016-11-26
  • 打赏
  • 举报
回复
如果要验证用户,可以使用OAuth2的password模式。 如果不知道OAuth2中包含哪几个角色的,建议先去熟悉一下。传送门:https://github.com/jeansfish/RFC6749.zh-cn 必须要实现两个接口: **1**: ClientDetailsService 这个用于加载客户端信息的,里面只有一个接口,loadClientByClientId,用于返回客户端的权限以及凭证(密码)信息的,包括resource_id, 供Spring Security OAuth2进行下一步的处理,无论是哪一种模式,都是需要提供client_id以及client_secret的,没有这个信息的OAuth2就失去了它的意义,请参见:http://security.stackexchange.com/questions/102002/password-grant-without-client-secret **2**: UserDetailsService 这个用于加载用户信息的,里面也只有一个接口,loadUserByUsername,顾名思义,是根据用户名(账号)返回这个用户的详细信息,包括权限以及密码等信息,Spring Security OAuth2会自动的去校验密码。 实现了这两个接口之后,接下来就是配置工作了,这个都很简单,网上一大堆,个人认为这个框架的Spring实现还是有着诸多的限制的,例如自定义重用他已经实现的功能模块,会比较困难,因为返回内容格式都是严格按照RFC6749标准来的,不过你可以使用自定义模式来进行自己的逻辑,归根结底,OAuth2就是一个授权框架,在认证这一块,标准并没有提供什么特殊的东西,这点在RFC6749中已经声明清楚了。 下一步Spring Security OAuth应该是要支持OIDC(OPENID)这些东西了,届时自定义应该会很方便,期待吧。
--cyan 2016-03-04
  • 打赏
  • 举报
回复
楼主研究出来了吗?单独提出来后,怎样完成系统的整个用户的验证
zhanghongth 2016-01-29
  • 打赏
  • 举报
回复
楼主,我也在研究,跟你一样的问题,请问你弄出来了吗?
doushen12 2015-12-17
  • 打赏
  • 举报
回复
楼主弄出来了吗,我也在研究这个。。
u012917558 2015-12-08
  • 打赏
  • 举报
回复
你有没有弄出来
灵猿 2015-09-08
  • 打赏
  • 举报
回复
: ), 我也是同样的需求, 授权服务器我需要单独分出来后, 原来的用户系统 完成鉴权, 现在卡到这儿了, 怎么扩展呢?
课程介绍: 本课程主要是针对如何从无到有搭建中小型互联网公司后台服务架构和运维架构的课程,课程所涉及的内容均是当前应用最广泛的技术和工具。本课程所讲解的技术体系已经在多个中小型互联网公司中实战运行使用,目前运行已经非常稳定,数据量也是在不断持续增加。并且,这个技术体系也正在被其他很多互联网公司应用,希望通过此课程,让大家能快速熟练掌握各个技术,并且能实际应用到项目中。课程将会通过实际案例讲解,并且会提供完整的视频案例源码供学员学习使用,同时有需要的企业或学员可以直接拿本套教学案例代码来使用或者二次开发。 本课程设计的技术及工具如下: 后台服务架构:dubbo、spring-boot、springmvcspring-security-oauth2、spring-ldap、spring-data-jpa等 项目管理工具:maven、nexus 版本管理工具:gitlab、git 数据库:mysql、mongodb 运维监控工具:Open-Falcon 日志管理工具:ELK 持续集成工具:Jenkins 协作工具:confluence 缓存:redis 消息中间件:kafka、rocketmq web服务器:tomcat、nginx 容器引擎:docker 本课程讲解的流程: 1、 首先讲解大家都已经熟悉的dubbo技术体系,结合dubbo搭建出一个完整的基于restful的技术框架 2、 结合dubbo的restful框架,加上基于oauth2的token验证,并实现统一用户中心的设计 3、 重点讲解spring boot,然后结合之前的dubbo技术框架进行改造,实现springboot和dubbo的相融合 4、 作为一个技术架构肯定涉及java性能调优,所以之后会根据图示讲解jvm里的一系列东西,帮助大家充分了解jvm 5、 讲解消息中间件redis,以及高可用集群搭建,以及里面的数据类型,分布式以及一致性问题的讲解 6、 git、elk、jenkins、confluence、kafak、rocketmq工具安装讲解 7、 讲解运维监控工具Open-Falcon,如何保证及时通知运维及开发人员服务器的问题,保证服务器以及服务正常运行 8、 讲解docker系列课程,结合docker进行部署 架构讲解设计的目标: 1、 低成本:任何公司存在的价值都是为了获取商业利益。在可能的情况下,希望一切都是低成本的。 2、高性能:网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标。系统的响应延迟,指系统完成某一功能需要使用的时间;系统的吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;系统的并发能力,指系统可以同时完成某一功能的能力,通常也用QPS(query per second)来衡量。 3、 高可用:系统的可用性(availability)指系统在面对各种异常时可以正确提供服务的能力。系统的可用性可 以用系统停服务的时间与正常服务的时间的比例来衡量,也可以用某功能的失败次数与成功次数的比例来衡量。 4、易伸缩:注重线性扩展,是否可以容易通过加入机器来处理不断上升的用户访问压力。系统的伸缩性(scalability)指分布式系统通过扩展集群机器规模提高系统性能(吞吐、延迟、并发)、存储容量、计算能力的特性。 5、高安全:现在商业环境中,经常出现被网站被***,用户账户被盗等现象。网站的安全性不言而喻。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧