shiro 拦截未登录的ajax_shiro 用ajax方式登录的话,如何配置

/login/** = anon

下马是java代码中要增加:

@RequestMapping(value = "/login")

@ResponseBody

public Object ajaxLogin(@RequestParam String username,

@RequestParam String password, @RequestParam boolean rememberMe) {

String ret="";

Subject currentUser = SecurityUtils.getSubject();

if (!currentUser.isAuthenticated()) {

UsernamePasswordToken token = new UsernamePasswordToken(username,

password);

token.setRememberMe(rememberMe);

try {

currentUser.login(token);

ret = "{success:true,message:'登陆成功'}";

} catch (UnknownAccountException ex) {

ret = "{success:false,message:'账号错误'}";

logger.debug(ret);

} catch (IncorrectCredentialsException ex) {

ret = "{success:false,message:'密码错误'}";

logger.debug(ret);

} catch (LockedAccountException ex) {

ret = "{success:false,message:'账号已被锁定,请与管理员联系'}";

logger.debug(ret);

} catch (AuthenticationException ex) {

ret = "{success:false,message:'您没有授权'}";

logger.debug(ret);

}

}

// 返回json数据

return ret;

}

如果是html通过ajax请求,还需要加上跨域支持:

accessFilter

com.hotice.shequ.filter.AccessFilter

accessFilter

/*

@Override

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,

FilterChain chain) throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) servletResponse;

response.setHeader("Access-Control-Allow-Origin","*");

response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

chain.doFilter(servletRequest, servletResponse);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值