Spring Security с настраиваемым потоком входа - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь добавить пружину с защитой пружины в существующее приложение на основе Struts.Это частичная миграция.Вся новая разработка должна произойти в Spring.

Итак, что я хочу,

  • Доступ пользователя к защищенному URL-адресу
  • Если пользователь не аутентифицирован, Spring следует перенаправитьна определенный URL-адрес (это будет URL-адрес Struts)
  • После того, как модуль Old Struts выполняет свою работу по аутентификации пользователя, он сохраняет объект в сеансе HTTP, который отображает аутентифицированного пользователя.
  • SpringДолжен получить этот объект из сеанса и пройти проверку подлинности пользователя.
  • Перенаправить пользователя на запрошенный защищенный URL

Я пытался использовать formlogin().loginpage(<Struts_URL>).Также в коде Struts после аутентификации я обновил SecurityContext.

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
    @Override
    protected void configure(HttpSecurity pHttp) throws Exception
    {
        pHttp.antMatcher("/**").authorizeRequests()
        .anyRequest().authenticated()
        .and().formLogin().loginPage("/<Struts_Login_Entry>.do");
    }
    ...
    @Override
    public void configure(WebSecurity pWeb) throws Exception 
    {
        // All the Strtus URL has .do suffix so excluding it
        pWeb.ignoring().antMatchers("/*.do", "/portal/**");
    }
}

после аутентификации в Struts Spring

...
MyUserDetails lUserDetails = new MyUserDetails(pUserName, pRole);
Authentication auth = new UsernamePasswordAuthenticationToken(lUserDetails, null, lUserDetails.getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(auth);
...

Пользователь перенаправляется на страницу Struts, когда он получает доступлюбой Spring URL Но это происходит, даже если пользователь аутентифицирован.

Я не очень знаком с Spring Security, какие-либо предложения или помощь?

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