Я новичок в весенней безопасности. Я понял основы Spring-Security о менеджере аутентификации и других вещах.
Я использую angularjs
в качестве внешнего интерфейса и spring 3.0.5
в качестве внутреннего.
Я хочу добавить Spring Spring для авторизации на основе ролей в мой существующий проект.
Я также хочу аутентифицировать пользователя, используя офис 365. Итак, я создал приложение в https://apps.dev.microsoft.com/ и дал URI перенаправления в качестве действия localhost.
Используя мой код, я могу аутентифицироваться с помощью Office 365. Я могу получить имя пользователя в перенаправленном действии.
@RequestMapping(value="/getCodeAndProcess", method=RequestMethod.POST)
private ModelAndView getCodeAndProcess(@RequestParam("code") String code, HttpServletRequest request) throws Exception {
HttpSession session = null;
try {
session = request.getSession(false);
session.setMaxInactiveInterval(45*60);
String username = helper.processCodeAndGetUsername(code); //this is I'm getting using office 365.
String userRole = helper.getUserRoleBasedOnUsername(username);
System.out.println("================userRole================="+userRole);
if(username != "") {
session.setAttribute("username", username);
session.setAttribute("userRole", userRole);
}else {
session.invalidate();
throw new Exception("username not found");
}
return new ModelAndView("redirect:/adminDashboard/showDashboard");
}catch(Exception e) {
log.error("Error while processing on users authentication.",e );
session.invalidate();
return new ModelAndView("redirect:/login/loginPage");
}
}
Теперь я не понимаю, как настроить имя пользователя и роли в security-context.xml
, чтобы я мог использовать @PreAuthorize("hasRole('ROLE_USER')")
, isAuthenticated()
, <sec:authorize
в своем приложении. (Что добавить в security-context.xml? Чтобы связать имя пользователя с ролью, как в сценарии входа в систему.)
Не могли бы вы помочь понять этот рабочий процесс?