@SuppressWarnings("unchecked")
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Map login(@RequestBody LoginDto login,
HttpServletRequest request,
HttpServletResponse response,Model model){
Map<String,Object> result = new HashMap<String,Object>();
try {
MyUsernamePasswordToken token = new MyUsernamePasswordToken(login.getUserName(), login.getPassword());
logger.info("andriod login--------------");
logger.info("userName:"+login.getUserName() +" password:"+login.getPassword());
token.setIsMember(login.getIsMember());
request.getSession().setAttribute("isMember", login.getIsMember());
SecurityUtils.getSubject().login(token);
/*
SecurityUtils.getSecurityManager().login(
SecurityUtils.getSubject(), token);
*/
result.put("result", "success");
return result;
} catch (AuthenticationException e) {
result.put("result", "failed");
result.put("error", "密碼或賬號錯誤.");
return result;
}
}
上述代碼, andirod app 可以訪問,但angular HttpClient 返回錯誤, 說無法認識參數,參數都是可以的,
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type")
查了半天,原來是沒有加上 Content-Type, 加上后,問題消失,花費半天時間。~~~~~~~~
