cas(七) Oauth2.0服务器
前面的微信集成,是Cas作为Oauth2.0的客户端调用微信,现在让Cas作为Oauth2.0的服务端。
- POM文件依赖
<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-oauth</artifactId> <version>${cas.version}</version> </dependency>
- 修改web.xml增加对/oauth/转发
<servlet-mapping> <servlet-name>cas</servlet-name> <url-pattern>/oauth/*</url-pattern> </servlet-mapping>
- 在deployerConfigContext.xml配置Oauth服务器,增加id=1的RegisteredServiceImpl
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"> <property name="registeredServices"> <list> <bean class="org.jasig.cas.services.RegexRegisteredService"> <property name="id" value="0" /> <property name="name" value="HTTP and IMAP" /> <property name="description" value="Allows HTTP(S) and IMAP(S) protocols" /> <property name="serviceId" value="^(https?|imaps?)://.*" /> <property name="evaluationOrder" value="10000001" /> </bean> <bean class="org.jasig.cas.services.RegisteredServiceImpl"> <property name="id" value="1" /> <property name="name" value="key" /> <property name="description" value="secret" /> <property name="serviceId" value="http://localhost:9090/" /> <property name="theme" value="demo" /> </bean>
- 在cas-servlet.xml增加oauth的映射和Oauth2.0协议处理类
<prop key="/oauth/*">oauth20WrapperController</prop>
<bean id="oauth20WrapperController" class="org.jasig.cas.support.oauth.web.OAuth20WrapperController" p:loginUrl="${server.prefix}/login" p:servicesManager-ref="servicesManager" p:ticketRegistry-ref="ticketRegistry" p:timeout="7200" />
- 添加对中文的Oauth的国际化(请参考英文自行翻译,这里只做测试)
screen.oauth.confirm.header=header
screen.oauth.confirm.message=message
screen.oauth.confirm.allow=allow
- 最后测试
参考资料:http://www.cnblogs.com/AloneSword/p/4168198.html
访问 http://localhost:8080/oauth/authorize?client_id=key&redirect_uri=http://localhost:9090/&response_type=code接着输入用户名密码然后页面上点击“allow”授权最后浏览器跳转访问9090端口带上了ST,如下- 访问访问链接,获取accessToken
- 最后访问链接获取用户信息
http://localhost:9090/?code=ST-1-6xMrCvNlSwfbffPLbLGy-cas01.example.org
http://localhost:8080/oauth/accessToken?client_id=key&client_secret=secret&grant_type=authorization_code&redirect_uri=http://localhost:9090/&code=ST-1-6xMrCvNlSwfbffPLbLGy-cas01.example.org
http://localhost:8080/oauth/profile?access_token=TGT-1-ZX5fe6Sf9rhHwHlCUqMzmTYku6eZ0cGBdudxTHPUdDmy9lXI3U-cas01.example.org

浙公网安备 33010602011771号