У меня есть проект с именем 'CRM', который был разработан с использованием Spring 3.0.5.RELEASE (Старый проект). Он имеет собственный модуль аутентификации и авторизации при входе. Я создал проект с загрузочной пружиной (1.5.2.RELEASE) под названием «Авторизация». Я должен сделать этот проект действующим в качестве Центрального модуля авторизации, например, https://accounts.google.com. После входа в мой проект пользователь получает панель инструментов, которая имеет ссылку на панель инструментов CRM. При нажатии на ссылку пользователь должен быть перенаправлен на панель управления CRM, пропуская вход в CRM. Пожалуйста, скажите мне, как выйти из системы. Я добавил следующие конечные точки в свой проект:
MainController. java
@RequestMapping("/")
public ModelAndView mainPage()
{
return new ModelAndView("admin"); //the dashboard page
}
@RequestMapping(value = "/register", method = RequestMethod.GET)
public ModelAndView register() {
return new ModelAndView("register", "user", new UserRegistration());
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public ModelAndView processRegister(@ModelAttribute("user") UserRegistration userRegistrationObject)
{
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
String encodedPassword = bCryptPasswordEncoder.encode(userRegistrationObject.getPassword());
User user = new User(userRegistrationObject.getUsername(), encodedPassword, authorities);
jdbcUserDetailsManager.createUser(user);
return new ModelAndView("redirect:/");
}
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login()
{
if (error != null)
model.addAttribute("errorMsg", "Username and Password are invalid");
if (logout != null)
model.addAttribute("msg", "You have been logged out successfully");
return new ModelAndView("login");
}
Я использовал пружинную защиту для защиты конечной точки '/'.
SecurityConfig. java
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests().antMatchers("/register").permitAll()
.antMatchers("/").hasAnyRole("ADMIN")
.anyRequest().authenticated().and().formLogin()
.loginPage("/login").permitAll().and().logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout")).permitAll();
}
В проекте CRM используется MySQL DB, которая работает на разных P C, а в моем проекте используется MySQL local пример. Проект CRM создает сеанс при входе в систему и использует сеанс для доступа к странице панели мониторинга.
Конечные точки CRM
@RequestMapping("login")
public String LogVal(@ModelAttribute("login") firstlogin fl, BindingResult result,
SessionStatus status,HttpServletRequest request, HttpSession session)
throws SecurityException,IllegalStateException,RollbackException, HeuristicMixedException,
HeuristicRollbackException,SystemException {
String uname = fl.getUsername();
String pass = fl.getPassword();
request.getSession().setAttribute("uname", (Object)uname);
request.getSession().setMaxInactiveInterval(60);
session.setAttribute("currentactivity", (Object)"calling");
return "redirect:Adminhome.do";
}
@RequestMapping("Adminhome")
public ModelAndView AdminForm(HttpSession session, HttpServletRequest request) {
session.setMaxInactiveInterval(120 * 600);
ModelAndView mav = new ModelAndView("dashboard");
String uname = (String) session.getAttribute("uname");
if (uname.equalsIgnoreCase("")) {
ModelAndView mav1 = new ModelAndView("login");
return mav1;
}
session.setAttribute("dashBoardUser", "gen4");
request.getSession().setAttribute("dofromDate", "null");
return mav;
}
Мой проект Spring Boot создает сеанс после входа в систему дюйма
Я не знаю, как сеанс был создан! <- Пожалуйста, объясните это </strong>.
Есть ли способ соединить эти два? Это ссылка на мой проект
Я абсолютный новичок. Пожалуйста, помогите мне. Большое вам спасибо.