Пользовательская страница входа в Spring Boot Security - PullRequest
0 голосов
/ 04 июля 2018

Мне интересно, как мне создать собственную страницу входа? Я попробовал следующие руководства, такие как https://docs.spring.io/spring-security/site/docs/current/guides/html5/form-javaconfig.html и http://www.baeldung.com/spring-mvc-tutorial#configviews, но безрезультатно, так как я не могу заставить классы WebMvcConfig работать. Я продолжаю получать 404 ошибки. Вот мои текущие файлы

Класс конфигурации безопасности

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

    /**
     * 
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().authenticated().and()
            .formLogin().loginPage("/login").permitAll();
        http.authorizeRequests().antMatchers("/stats").hasRole("ADMIN")
                .and().formLogin().loginPage("/login");
        //everything else ADMIN and USERS can see
        http.authorizeRequests().antMatchers("/").hasAnyRole("ADMIN","USER")
                .and().formLogin().loginPage("/login");     
    }

    @Autowired
    DataSource dataSource;

    @Autowired
    public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
        auth.jdbcAuthentication().dataSource(dataSource)
            .passwordEncoder(passwordEncoder());
    }

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

Файл login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <h1>HERE!!!!</h1>
        <form action="${contextRoot}/login" method="post">
            <input type="text" name="username" value="username"/>
            <input type="password" name="password"/>
            <input type="submit" value="Login"/> 
        </form>
    </body>
</html>

и класс веб-конфигурации Mvc

@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/login").setViewName("login");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }
}

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете попробовать это: Следующий пример в JSF и Spring https://www.codenotfound.com/jsf-primefaces-spring-security-example.html

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