《权限系列shiro+cas》----配置各个应用程序
来源:互联网 发布:健身 年轻 知乎 编辑:程序博客网 时间:2024/05/16 11:03
前言
- shiro-cas-authority已经大体的介绍完毕,现在我们需要在各个应用程序之间来引用它实现权限管理。
Cas客户端与服务端的配置
- cas的客户端在shiro-cas-authority已经配置完成,我们配置cas的服务端时,可以将在源码上下载下来的cas文件夹放在tomcat的webapps目录下,然后启动tomcat,这样cas的服务端就生效了。
源码地址
点击这里,去小编的GitHub上下载源码
应用程序配置
配置shiro.properties
- 每个应用程序都有自己的shiro.properties配置文件,在每个shiro.properties中配置的是用户登录成功后的默认访问地址,登录失败后默认访问地址,以及casServer的地址等等,正是因为用户在正确登录每个应用程序的时候访问的默认地址不一样,所以讲shiro.properties单独抽出来放在各个应用程序中。
应用程序的核心spring.xml文件
<context:component-scan base-package="com.spring.app1.service"/><context:component-scan base-package="com.spring.app1.dao"/><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="order" value="1"/> <property name="ignoreUnresolvablePlaceholders" value="true"/> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <value>classpath:shiro.properties</value> </list> </property></bean><import resource="spring-mybatis.xml"/><!-- 引入shiro-cas-authority中的spring核心配置文件 --><import resource="classpath*:conf/spring-context-authority.xml"/>
应用程序的springmvc.xml文件
<!-- 注解扫描 --> <mvc:annotation-driven /> <context:component-scan base-package="com.spring.app1.controller"></context:component-scan> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix" value="/WEB-INF/jsp/"></property> <!-- 后缀 --> <property name="suffix" value=".jsp"></property> </bean> <!-- 静态资源处理 --> <!-- <mvc:default-servlet-handler /> --> <mvc:resources location="/WEB-INF/js/" mapping="/js/**" /> <!-- 支持Shiro对Controller的方法级AOP安全控制 begin --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean><!-- 支持Shiro对Controller的方法级AOP安全控制 end -->
- 在springmvc的配置文件中,我们需要配置支持Shiro对Controller的方法级AOP安全控制,这样我们在Controller中的方法上加shiro的资源注解时,shiro就会自动判断用户是否拥有此权限。
后台Controller方法
@RequestMapping("/course")@Controllerpublic class CourseController extends BaseController { @Autowired CourseService courseService; @RequestMapping(value = {"/index"}) public String index() { return "index"; } @RequiresPermissions("query") @RequestMapping("queryAllCourse") @ResponseBody public List<Course> queryAllCourse() { List<Course> list =courseService.queryAllCourse(); Course course=new Course(); course.setComment("这是应用程序1查询出来的Course"); course.setCourseName("这是应用程序1查询出来的Course"); course.setId("1111111111111111111"); course.setCreate_time(new Date()); list.add(course); return list; } @RequiresPermissions("create") @RequestMapping("failureUrl") @ResponseBody public List<String> loninFailure() { List<String> list = Arrays.asList("这是登录失败的后返回的结果","失败结果1","失败结果2"); return list; } /** * 此方法admin没有权限访问,因为资源授权中 没有 delete * @return */ @RequiresPermissions("delete") @RequestMapping("delete") @ResponseBody public List<String> deleteMethod() { List<String> list = Arrays.asList("这是登录失败的后返回的结果","失败结果1","失败结果2"); return list; } @RequestMapping("queryByAjax") @ResponseBody @RequiresPermissions("delete") public List<String> queryByAjax(String username,String content) { List<String> list = Arrays.asList("刘德华","张学友","黎明","郭富城"); System.out.println(username); System.out.println(content); return list; }}
启动程序,访问应用程序一(applicationOne)
访问地址:http://localhost:8083/app1/course/index
输入地址后,程序会自动跳转到cas的服务端,此时cas的登录页就显示出来了。
输入用户名:admin
密 码:admin@2015
登录成功后就会访问index.jsp这个页面就是测试用的所有方法,由于小编不能将项目中的所有源码都展示出来,所以小编只是将项目的框架抽离出来,展示个demo,读者拿到这套框架后可以根据自己的业务来修改和扩展。
小结
- 这一片博客只是贴出了源码中的applicationOne中的代码,读者可以将applicationTwo也启动起来,这样以来,当我们点击应用程序1中的跳往applicationTwo的时候,应用程序Two不会让我们登录了,至此,跨域的单点登录已经实现。
阅读全文
1 0
- 《权限系列shiro+cas》----配置各个应用程序
- 《权限系列shiro+cas》----Cas服务端的配置
- 《权限系列shiro+cas》----cas登录原理
- 《权限系列shiro+cas》----修改cas的默认登录页
- 《权限系列shiro+cas》---封装公共验证模块
- CAS-shiro 相关配置
- shiro新手权限配置
- shiro和cas集成下配置过滤器
- jeesite配置shiro与CAS认证
- Apache shiro(3)—cas + shiro配置说明
- cas系列(二)--cas单点登录配置
- jeesite- shiro权限配置问题
- 【Shiro权限管理】5. Shiro权限URL 配置细节
- 第三部分:shiro集成spring使用cas单点登录配置
- 第三部分:shiro集成spring使用cas单点登录配置
- cas客户端,shiro-cas整合
- shiro学习-shiro集成cas
- Shiro 权限管理filterChainDefinitions过滤器配置
- 九度1084:整数拆分
- 【转】JVM调优总结(一)-一些概念
- Linux中的进程间通信
- 解决R语言xlsx安装遇到问题
- 我大声地告诉您,一卡通的终极目标就是无卡通
- 《权限系列shiro+cas》----配置各个应用程序
- POJ 2104 . K-th Number
- 使用导航控件
- hadoop 2.2.X 配置参数说明:mapred-site.xml
- POJ1155-树形DP&&背包
- 【转】JVM调优总结(二)-一些概念
- Apache Kylin的入门安装
- 初学Python之Flask开发API接口
- 用户注册和登录实例