在J2EE项目开发中,若用到Apache Shiro权限框架,若需为移动端提供登录接口并提供授权认证则需要对移动端提供的登录信息进行处理,封装到token中,然后交由Apache Shiro进行认证回调函数授权登录,下面是本人在项目开发中的实现方式:
/**
* 移动设备登陆
* @param username
* @param password
* @param request
* @return
*/
@RequestMapping(value = "/mblogin")
@ResponseBody
public String mblogin(
@RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String username,
@RequestParam(FormAuthenticationFilter.DEFAULT_PASSWORD_PARAM) String password,
HttpServletRequest request) {
String callback = request.getParameter("jsCallback");
UsernamePasswordToken token = new UsernamePasswordToken(username,
password);
try {
SecurityUtils.getSecurityManager().login(
SecurityUtils.getSubject(), token);
} catch (Exception e) {
e.printStackTrace();
return callback + "('error')";// 登录失败
}
return callback + "('ok')";// 登陆成功
}
这样移动端的登录就调用Apache Shiro认证并返回认证情况