как настроить пользовательскую страницу входа вместо весенней страницы входа по умолчанию - PullRequest
0 голосов
/ 29 апреля 2020

Я интегрирую Angular с Spring Boot, я хочу настроить собственную страницу входа в систему, но когда я запускаю свое приложение, она показывает страницу входа по умолчанию в Spring Security. Я изменяю set каждой вещи в моем файле конфигурации, но он по-прежнему показывает страницу входа в систему безопасности по умолчанию. Как настроить пользовательскую страницу входа?

SecurityConfig

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
     @Override
        protected void configure(final AuthenticationManagerBuilder auth) throws Exception {
         auth.inMemoryAuthentication().withUser("nilmani").password("{noop}akj@159")
         .roles("USER");
        }

        @Override
        protected void configure(final HttpSecurity http) throws Exception {
            http
              .csrf().disable()
              .authorizeRequests()
              .anyRequest().authenticated()
              .and()
              .formLogin()
              .loginPage("/login.component.html")
              .loginProcessingUrl("/perform_login")
              .defaultSuccessUrl("/dashboard.component.html", true);
              //.failureUrl("/login.html?error=true")
        }

        @Bean
        public PasswordEncoder passwordEncoder() {
            return new BCryptPasswordEncoder();
        }

}

login.component. html

<div class="app-body">
  <main class="main d-flex align-items-center">
    <div class="container">
      <div class="row">
        <div class="col-md-8 mx-auto">
          <div class="card-group">
            <div class="card p-4">
              <div class="card-body">
                <form>
                  <h1>Login</h1>
                  <p class="text-muted">Sign In to your account</p>
                  <div class="input-group mb-3">
                    <div class="input-group-prepend">
                      <span class="input-group-text"><i class="icon-user"></i></span>
                    </div>
                    <input type="text" class="form-control" placeholder="Username" [(ngModel)]="username" [ngModelOptions]="{standalone: true}"  autocomplete="username" required>
                  </div>
                  <div class="input-group mb-4">
                    <div class="input-group-prepend">
                      <span class="input-group-text"><i class="icon-lock"></i></span>
                    </div>
                    <input type="password" class="form-control" placeholder="Password"[(ngModel)]="password" [ngModelOptions]="{standalone: true}"  autocomplete="current-password" required>
                  </div>
                  <div class="row">
                    <div class="col-6">
                      <button type="button" (click)="dologin()" class="btn btn-primary px-4">Login</button>
                    </div>
                    <div class="col-6 text-right">
                      <button type="button" class="btn btn-link px-0">Forgot password?</button>
                    </div>
                  </div>
                </form>
              </div>
            </div>
            <div class="card text-white bg-primary py-5 d-md-down-none" style="width:44%">
              <div class="card-body text-center">
                <div>
                  <h2>Sign up</h2>
                  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                  <button type="button" class="btn btn-primary active mt-3">Register Now!</button>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </main>
</div>

1 Ответ

0 голосов
/ 30 апреля 2020

Ваш SecurityConfig в порядке. Я сделал это так же. Вы должны убедиться, что у вас есть контроллер, который принимает этот URL и доставляет правильную страницу. И обычно вы не определяете html страницу! Правильный URL может быть просто / login .

Таким образом, ваш SecurityConfig выглядит следующим образом:

.formLogin()
  .loginPage("/login")

И ваш контроллер, например:

@Controller
@RequestMapping(value="/login")
@Scope(value="session")
public class LoginController extends AbstractWebController {

    @GetMapping
    public ModelAndView loginView() {
        ModelAndView mav = this.getModelAndView("login");
        return mav;
    }

    // further code goes here
}

Этот контроллер, например, возвращает страницу jsp, которую можно стилизовать согласно на ваши нужды с Angular или чем-то еще.

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