0
点赞
收藏
分享

微信扫一扫

ssm+shrio前后端分离的使用方法

陌岛 2023-02-21 阅读 53


1,概述

接上一个知识点,上一个项目里面我们实现的是在jsp页面如何判断用户有没有某个角色和权限,那么在前后端分离的情况下【没有jsp】如何去实现呢,我们接着上一个项目开发

2,复制项目

3,修改appliaction-shiro.xml

ssm+shrio前后端分离的使用方法_xml


4,修改UserController

@RestController
@RequestMapping("user")
public class UserController {

@RequestMapping("query")
@RequiresPermissions("user:query")
public Map<String,Object">> query(){
Map<String,Object">> map=new HashMap<">>();
map.put("msg", "query");
return map;
}
@RequestMapping("add")
@RequiresPermissions("user:add")
public Map<String,Object">> add(){
Map<String,Object">> map=new HashMap<">>();
map.put("msg", "add");
return map;
}
@RequiresPermissions("user:update")
@RequestMapping("update")
public Map<String,Object">> update(){
Map<String,Object">> map=new HashMap<">>();
map.put("msg", "update");
return map;
}
@RequestMapping("delete")
@RequiresPermissions("user:delete")
public Map<String,Object">> delete(){
Map<String,Object">> map=new HashMap<">>();
map.put("msg", "delete");
return map;
}
@RequestMapping("export")
@RequiresPermissions("user:export")
public Map<String,Object">> export(){
Map<String,Object">> map=new HashMap<">>();
map.put("msg", "export");
return map;
}

}

5,创建CommonController

@RestController
@RequestMapping("common")
public class CommonController {

/**
* 未登陆
*/
@RequestMapping("unLogin")
public Object unLogin() {
Map<String,Object">> map=new HashMap<">>();
map.put("code", -1);
map.put("msg", "未登陆");
return map;
}
}

6,创建GlobalExceptionHanderAdvise全局异常监控

/**
* 全局的异常监控
* @author LJH
*
*/

//@ControllerAdvice 这个注解是监视Controller里面是否有异常发生,如果发生就跳转页面
@RestControllerAdvice
public class GlobalExceptionHanderAdvise {

/**
* 未授权
*/
@ExceptionHandler(value= {UnauthorizedException.class})
public Object unauthorized() {
Map<String,Object">> map=new HashMap<">>();
map.put("code", -1);
map.put("msg", "未授权,请联系管理员");
return map;
}

}

6,修改springmvc.xml开启shiro注解

<!-- 扫描异常监视器 -->
<context:component-scan base-package="com.sxt.aspect"></context:component-scan>
<!-- 启动Shrio的注解 -->
<bean id="lifecycleBeanPostProcessor"
class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
<bean
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
depends-on="lifecycleBeanPostProcessor" />
<bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>


举报

相关推荐

0 条评论