http://blog.csdn.net/binyao02123202/article/details/12204411
1、软件下载
Oauth服务端: http://code.google.com/p/oauth/
通过SVN,下载源码。
或者下载站长整合好的示例源码:http://115.com/file/aqvpzqhz
客户端下载:http://code.google.com/p/oauth-signpost/ oauth-signpost
或者下载站长整合好的示例源码:http://115.com/file/bhy1d2ce
2、服务端源码下载后,把相关代码整合在一起(或直接下载站长整合好的代码),修改net.oauth.provider.core.SampleOAuthProvider 类,把从 provider.properties 读取的信息改为从数据库中读取,如APP_KEY、APP_SCERET、描述、回调地址。
3、net.oauth.example.provider.servlets下面的四个类,这里对应着oauth3个请求url,跟一个用于测试的链接,可以根据需求修改,如将调用Oauth的用户信息记录下来。
4、修改web.xml 增加三个请求url
02 |
<servlet-name>request_token</servlet-name> |
03 |
<servlet-class>net.oauth.provider.servlets.RequestTokenServlet</servlet-class> |
06 |
<servlet-name>request_token</servlet-name> |
07 |
<url-pattern>/oauth/request_token</url-pattern> |
11 |
<servlet-name>access_token</servlet-name> |
12 |
<servlet-class>net.oauth.provider.servlets.AccessTokenServlet</servlet-class> |
15 |
<servlet-name>access_token</servlet-name> |
16 |
<url-pattern>/oauth/access_token</url-pattern> |
20 |
<servlet-name>authorize</servlet-name> |
21 |
<servlet-class>net.oauth.provider.servlets.AuthorizationServlet</servlet-class> |
24 |
<servlet-name>authorize</servlet-name> |
25 |
<url-pattern>/oauth/authorize</url-pattern> |
5、做个拦截器,只要通过某url访问的都需要进行Oauth认证:
web.xml
2 |
<filter-name>OauthFilter</filter-name> |
3 |
<filter-class>web.school.phone.OauthFilter</filter-class> |
6 |
<filter-name>OauthFilter</filter-name> |
7 |
<url-pattern>/phone/*</url-pattern> |
web.school.phone.OauthFilter
01 |
package web.school.phone; |
02 |
import java.io.IOException; |
04 |
import javax.servlet.Filter; |
05 |
import javax.servlet.FilterChain; |
06 |
import javax.servlet.FilterConfig; |
07 |
import javax.servlet.ServletException; |
08 |
import javax.servlet.ServletRequest; |
09 |
import javax.servlet.ServletResponse; |
10 |
import javax.servlet.http.HttpServletRequest; |
11 |
import javax.servlet.http.HttpServletResponse; |
13 |
import net.oauth.OAuthAccessor; |
14 |
import net.oauth.OAuthMessage; |
15 |
import net.oauth.provider.core.SampleOAuthProvider; |
16 |
import net.oauth.server.OAuthServlet; |
18 |
public class OauthFilter implements Filter
{ |
20 |
public void destroy()
{ |
23 |
public void init(FilterConfig
fConfig) throws ServletException
{ |
26 |
public void doFilter(ServletRequest
request, ServletResponse response, FilterChain chain) |
27 |
throws IOException,
ServletException { |
28 |
HttpServletRequest
req=(HttpServletRequest)request; |
29 |
HttpServletResponse
res=(HttpServletResponse)response; |
32 |
OAuthMessage
requestMessage = OAuthServlet.getMessage(req, null); |
33 |
OAuthAccessor
accessor = SampleOAuthProvider.getAccessor(requestMessage); |
34 |
SampleOAuthProvider.VALIDATOR.validateMessage(requestMessage,
accessor); |
36 |
System.out.println("[OauthFilter:passed]:"+req.getRequestURI()); |
37 |
chain.doFilter(request,
response);//验证通过则转向 |
39 |
} catch (Exception
e){ |
41 |
SampleOAuthProvider.handleException(e,
req, res, false); |
6、执行客户端代码,提示输入验证码时,把控制台打印的URL放到浏览器里打开,输入授权码:
(服务端AuthorizationServlet 里面修改验证不通过要跳转的页面,页面上会打印一些参数)
- 一步一步搭建 OAuth 认证服务器
http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%90%AD%E5%BB%BA-oauth-%E8%AE%A4% ...
- 家用环境下部署wifidog认证服务器(java版)
本文所讲的是基于一个java版wifidog认证服务器的开源项目,在windows环境下搭建wifidog认证服务器配合apfree固件实现用户名密码的认证. 大致步骤如下: 一,准备 1.搭建硬件及 ...
- oauth2使用心得-----基本概念以及认证服务器搭建
应用场景 我们假设你有一个“云笔记”产品,并提供了“云笔记服务”和“云相册服务”,此时用户需要在不同的设备(PC.Android.iPhone.TV.Watch)上去访问这些“资源”(笔记,图片) 那 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- authpuppy 认证服务器搭建
此文仅限于搭建authpuppy认证服务器,不包含认证插件等安装,仅说明步骤以备下次安装忘记步骤.耽误时间. 环境:ubuntu10.04 软件版本:authpuppy-1.0.0-stable.tg ...
- Spring cloud微服务安全实战-4-5搭建OAuth2认证服务器
现在可以访问我们的认证服务器,应用我们已经配置好了. 下面配置让用户可以访问我的认证服务器.再来重写一个方法. EndpointConfigure端点的配置. authenticationManage ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_05-SpringSecurityOauth2研究-搭建认证服务器
3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用 ...
- 学习Spring Security OAuth认证(一)-授权码模式
一.环境 spring boot+spring security+idea+maven+mybatis 主要是spring security 二.依赖 <dependency> <g ...
- OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法
OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...
随机推荐
- HTTP缓存是如何实现
浏览器是如何知道使用缓存的,其实这都是通过http中,浏览器将最后修改时间发送请求给web服务器,web服务器收到请求后跟服务器上的文档最后修改的时间对比,如果web服务器上最新文档修改时间小于或者等 ...
- SharePoint 2010 WSP包部署过程中究竟发生什么?
转:http://www.xue163.com/158/6/1585365.html 在SharePoint 2010中,我们可以使用Visual Studio 2010轻松创建WSP包来安装Web ...
- JavaScript里的类和继承
JavaScript与大部分客户端语言有几点明显的不同: JS是 动态解释性语言,没有编译过程,它在程序运行过程中被逐行解释执行JS是 弱类型语言,它的变量没有严格类型限制JS是面向对象语言,但 没有 ...
- JAVA与.NET的相互调用——通过Web服务实现相互调用
JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方.而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发.而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候 ...
- c#调用带有安全认证的java webservice
最近使用c#调用另外一个同事写的java webservice耽误了很多时间,网上资料不太完整,走了很多弯路,希望对大家有帮助. 基本思路是1.拼装soap使用http post ,主要将验证身份信息 ...
- Linux中的syslog 入门学习教程
syslog是linux系统中默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.程序.守护进程和内核提供了访问系统的日志信息.任何希望生成日志信息的程序都可以向sy ...
- BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛
分析:http://www.cnblogs.com/huhuuu/archive/2011/11/25/2263803.html 注:从这个题收获了两点 1,第一象限(x,y)到(0,0)的线段上整点 ...
- poj2686 Traveling by Stagecoach
http://poj.org/problem?id=2686 Trav ...
- lua部分 tips
lua文件刷新 function require_ex( _mname ) if _mname == "" then return end if package.loaded[_m ...
- C# WinForm多线程(三)---- Control.Invoke[转]
开发中遇到更新Winform中控件假死问题,通过看了这篇文章了解了原理,感谢!此处标记起来,以备查看! 原文地址:http://www.cnblogs.com/joechen/archive/2009 ...