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

01 <servlet>
02         <servlet-name>request_token</servlet-name>
03         <servlet-class>net.oauth.provider.servlets.RequestTokenServlet</servlet-class>
04     </servlet>
05     <servlet-mapping>
06         <servlet-name>request_token</servlet-name>
07         <url-pattern>/oauth/request_token</url-pattern>
08     </servlet-mapping>
09  
10     <servlet>
11         <servlet-name>access_token</servlet-name>
12         <servlet-class>net.oauth.provider.servlets.AccessTokenServlet</servlet-class>
13     </servlet>
14     <servlet-mapping>
15         <servlet-name>access_token</servlet-name>
16         <url-pattern>/oauth/access_token</url-pattern>
17     </servlet-mapping>
18  
19     <servlet>
20         <servlet-name>authorize</servlet-name>
21         <servlet-class>net.oauth.provider.servlets.AuthorizationServlet</servlet-class>
22     </servlet>
23     <servlet-mapping>
24         <servlet-name>authorize</servlet-name>
25         <url-pattern>/oauth/authorize</url-pattern>
26     </servlet-mapping>

5、做个拦截器,只要通过某url访问的都需要进行Oauth认证:

web.xml

1 <filter>
2        <filter-name>OauthFilter</filter-name>
3        <filter-class>web.school.phone.OauthFilter</filter-class>
4     </filter>
5     <filter-mapping>
6        <filter-name>OauthFilter</filter-name>
7        <url-pattern>/phone/*</url-pattern>
8     </filter-mapping>

web.school.phone.OauthFilter

01     package web.school.phone;
02          import java.io.IOException;
03  
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;
12  
13     import net.oauth.OAuthAccessor;
14     import net.oauth.OAuthMessage;
15     import net.oauth.provider.core.SampleOAuthProvider;
16     import net.oauth.server.OAuthServlet;
17  
18     public class OauthFilter implements Filter
{
19  
20       public void destroy()
{
21       }
22  
23       public void init(FilterConfig
fConfig) 
throws ServletException
{
24       }
25  
26       public void doFilter(ServletRequest
request, ServletResponse response, FilterChain chain)
27       throws IOException,
ServletException {
28         HttpServletRequest
req=(HttpServletRequest)request;
29         HttpServletResponse
res=(HttpServletResponse)response;
30  
31         try{
32             OAuthMessage
requestMessage = OAuthServlet.getMessage(req, 
null);
33             OAuthAccessor
accessor = SampleOAuthProvider.getAccessor(requestMessage);
34             SampleOAuthProvider.VALIDATOR.validateMessage(requestMessage,
accessor);
35  
36             System.out.println("[OauthFilter:passed]:"+req.getRequestURI());
37             chain.doFilter(request,
response);
//验证通过则转向
38  
39         catch (Exception
e){
40             //验证不通过
41             SampleOAuthProvider.handleException(e,
req, res, 
false);
42         }
43  
44       }
45  
46 }

6、执行客户端代码,提示输入验证码时,把控制台打印的URL放到浏览器里打开,输入授权码:

(服务端AuthorizationServlet 里面修改验证不通过要跳转的页面,页面上会打印一些参数)

JAVA Oauth 认证服务器的搭建的更多相关文章

  1. 一步一步搭建 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% ...

  2. 家用环境下部署wifidog认证服务器(java版)

    本文所讲的是基于一个java版wifidog认证服务器的开源项目,在windows环境下搭建wifidog认证服务器配合apfree固件实现用户名密码的认证. 大致步骤如下: 一,准备 1.搭建硬件及 ...

  3. oauth2使用心得-----基本概念以及认证服务器搭建

    应用场景 我们假设你有一个“云笔记”产品,并提供了“云笔记服务”和“云相册服务”,此时用户需要在不同的设备(PC.Android.iPhone.TV.Watch)上去访问这些“资源”(笔记,图片) 那 ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. authpuppy 认证服务器搭建

    此文仅限于搭建authpuppy认证服务器,不包含认证插件等安装,仅说明步骤以备下次安装忘记步骤.耽误时间. 环境:ubuntu10.04 软件版本:authpuppy-1.0.0-stable.tg ...

  6. Spring cloud微服务安全实战-4-5搭建OAuth2认证服务器

    现在可以访问我们的认证服务器,应用我们已经配置好了. 下面配置让用户可以访问我的认证服务器.再来重写一个方法. EndpointConfigure端点的配置. authenticationManage ...

  7. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_05-SpringSecurityOauth2研究-搭建认证服务器

    3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用 ...

  8. 学习Spring Security OAuth认证(一)-授权码模式

    一.环境 spring boot+spring security+idea+maven+mybatis 主要是spring security 二.依赖 <dependency> <g ...

  9. OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法

    OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...

随机推荐

  1. MFC VS2005 添加Override 和 Message

    VS2005 1.Overrides OnInitDialog() 在Class View选中 这个类,然后properties中点Message 旁边的Overrides, 添加OnInitDial ...

  2. [POJ1012]Joseph

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 50596   Accepted: 19239 Description T ...

  3. 【JS】Beginner7:Functions

    1.Function=Reusable blocks of code Passed arguments &  return a value save functions as the valu ...

  4. 荷兰国旗,三类数字分离 nyoj

    很有用O(n)内实现三类数字分离,以前大多是分成两类数据,快排中分成两类,还有就是"ab***vvvc" 在O(n)中变成 abvvc****,变成两类划分问题   #includ ...

  5. shell截取字符串方法

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${parameter:?word}${p ...

  6. 【Java基础】抽象类和抽象方法的总结

    什么是抽象类 抽象类是相同概念实体的一种抽象,Java中用关键字abstract来定义抽象类和抽象方法. 什么是抽象方法 只有方法的声明,没有方法的具体实现的方法. 抽象类和抽象方法的特点 抽象类和抽 ...

  7. linux bin文件制作

    一 Linux安装文件 Linux常见的安装为tar,zip,gz,rpm,deb,bin等.我们可以简单的分为三类, 第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文 ...

  8. centos6.4 yum kvm

    1. 安装软件包:   yum -y install virt-manager; yum install qemu-kvm  yum install libvirt yum install libvi ...

  9. advanced dom scripting dynamic web design techniques Part One DOM SCRIPTING IN DETAIL CHAPTER 1 DO IT RIGHT WITH BEST PRACTICES

    You’re excited; your client is excited. All is well. You’ve just launched the client’s latest websit ...

  10. Art Gallery - POJ 1279(求内核面积)

    同上面几道题差不多,需要先求出来内核,然后直接用叉积求出来面积即可. 代码如下: #include<iostream> #include<string.h> #include& ...