Совместное использование Cook ie или сеанс между различными веб-приложениями - PullRequest
0 голосов
/ 28 января 2020

У меня есть проект с именем '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>.

Есть ли способ соединить эти два? Это ссылка на мой проект

Я абсолютный новичок. Пожалуйста, помогите мне. Большое вам спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...