原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398
根据下载的pdf学习。
开涛shiro教程-第十七章-OAuth2集成
3.客户端
客户端流程可以参照如很多网站的新浪微博登录功能,或其他的第三方帐号登录功能。
1 客户端进行登录操作 2 跳到oauth2服务端,进行登录授权。成功后,服务端返回auth code。 3 客户端使用auth code去服务器换取access token。 4 客户端根据access token得到用户信息,进行客户端的登录绑定。
(1)POM依赖
此处我们使用 apache oltu oauth2 客户端实现。
1 <dependency> 2 <groupId>org.apache.oltu.oauth2</groupId> 3 <artifactId>org.apache.oltu.oauth2.client</artifactId> 4 <version>0.31</version> 5 </dependency>
附完整pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3 <parent> 4 <artifactId>shiro-example</artifactId> 5 <groupId>com.github.zhangkaitao</groupId> 6 <version>1.0-SNAPSHOT</version> 7 </parent> 8 <modelVersion>4.0.0</modelVersion> 9 <artifactId>shiro-example-chapter17-client</artifactId> 10 <packaging>war</packaging> 11 <name>shiro-example-chapter17-client</name> 12 <url>http://maven.apache.org</url> 13 <dependencies> 14 <dependency> 15 <groupId>junit</groupId> 16 <artifactId>junit</artifactId> 17 <version>3.8.1</version> 18 <scope>test</scope> 19 </dependency> 20 21 <dependency> 22 <groupId>commons-collections</groupId> 23 <artifactId>commons-collections</artifactId> 24 <version>3.2.1</version> 25 </dependency> 26 27 28 <dependency> 29 <groupId>org.apache.oltu.oauth2</groupId> 30 <artifactId>org.apache.oltu.oauth2.client</artifactId> 31 <version>0.31</version> 32 </dependency> 33 34 35 <dependency> 36 <groupId>javax.servlet</groupId> 37 <artifactId>javax.servlet-api</artifactId> 38 <version>3.0.1</version> 39 <scope>provided</scope> 40 </dependency> 41 <dependency> 42 <groupId>javax.servlet.jsp</groupId> 43 <artifactId>jsp-api</artifactId> 44 <version>2.2</version> 45 </dependency> 46 <dependency> 47 <groupId>javax.servlet</groupId> 48 <artifactId>jstl</artifactId> 49 <version>1.2</version> 50 </dependency> 51 52 53 <dependency> 54 <groupId>org.apache.shiro</groupId> 55 <artifactId>shiro-core</artifactId> 56 <version>1.2.2</version> 57 </dependency> 58 <dependency> 59 <groupId>org.apache.shiro</groupId> 60 <artifactId>shiro-ehcache</artifactId> 61 <version>1.2.2</version> 62 </dependency> 63 <dependency> 64 <groupId>org.apache.shiro</groupId> 65 <artifactId>shiro-web</artifactId> 66 <version>1.2.2</version> 67 </dependency> 68 <dependency> 69 <groupId>org.apache.shiro</groupId> 70 <artifactId>shiro-quartz</artifactId> 71 <version>1.2.2</version> 72 </dependency> 73 <dependency> 74 <groupId>org.apache.shiro</groupId> 75 <artifactId>shiro-spring</artifactId> 76 <version>1.2.2</version> 77 </dependency> 78 79 80 <dependency> 81 <groupId>mysql</groupId> 82 <artifactId>mysql-connector-java</artifactId> 83 <version>5.1.25</version> 84 </dependency> 85 <dependency> 86 <groupId>com.alibaba</groupId> 87 <artifactId>druid</artifactId> 88 <version>0.2.23</version> 89 </dependency> 90 91 92 <!-- aspectj相关jar包--> 93 <dependency> 94 <groupId>org.aspectj</groupId> 95 <artifactId>aspectjrt</artifactId> 96 <version>1.7.4</version> 97 </dependency> 98 <dependency> 99 <groupId>org.aspectj</groupId> 100 <artifactId>aspectjweaver</artifactId> 101 <version>1.7.4</version> 102 </dependency> 103 104 <dependency> 105 <groupId>org.springframework</groupId> 106 <artifactId>spring-context-support</artifactId> 107 <version>4.0.0.RELEASE</version> 108 </dependency> 109 110 <dependency> 111 <groupId>org.springframework</groupId> 112 <artifactId>spring-jdbc</artifactId> 113 <version>4.0.0.RELEASE</version> 114 </dependency> 115 116 <dependency> 117 <groupId>org.springframework</groupId> 118 <artifactId>spring-tx</artifactId> 119 <version>4.0.0.RELEASE</version> 120 </dependency> 121 122 <dependency> 123 <groupId>org.springframework</groupId> 124 <artifactId>spring-webmvc</artifactId> 125 <version>4.0.0.RELEASE</version> 126 </dependency> 127 128 <!--jackson --> 129 <dependency> 130 <groupId>com.fasterxml.jackson.core</groupId> 131 <artifactId>jackson-databind</artifactId> 132 <version>2.2.3</version> 133 </dependency> 134 135 </dependencies> 136 <build> 137 <finalName>chapter17-client</finalName> 138 <plugins> 139 <plugin> 140 <groupId>org.mortbay.jetty</groupId> 141 <artifactId>jetty-maven-plugin</artifactId> 142 <version>8.1.8.v20121106</version> 143 <configuration> 144 <webAppConfig> 145 <contextPath>/${project.build.finalName}</contextPath> 146 </webAppConfig> 147 <connectors> 148 <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> 149 <port>9080</port> 150 <maxIdleTime>60000</maxIdleTime> 151 </connector> 152 </connectors> 153 </configuration> 154 </plugin> 155 156 157 <plugin> 158 <groupId>org.apache.tomcat.maven</groupId> 159 <artifactId>tomcat7-maven-plugin</artifactId> 160 <version>2.2</version> 161 <configuration> 162 <path>/${project.build.finalName}</path> 163 <httpPort>9080</httpPort> 164 </configuration> 165 166 </plugin> 167 </plugins> 168 169 170 </build> 171 </project>