有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java spring启动:404登录后调用

我知道有很多这样的问题,但我发现没有什么能帮我解决这个问题。 我使用Spring Boot和安全性来处理登录,以及自定义登录页面。这是我的配置:

@SpringBootApplication
public class CompetencyMatrixApplication {

    public static void main(String[] args) {
        SpringApplication.run(CompetencyMatrixApplication.class, args);
    }

}

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
    private final UserDetailsService userDetailsService;

    public SecurityConfig(UserDetailsService userDetailsService)
    {
        this.userDetailsService = userDetailsService;
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService);
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/", "/matrix", "/matrix/show", "/cas/getImage", "/documentModal").access("hasRole('2')")
                .antMatchers("/matrix/fromFile", "/matrix/upload").access("hasRole('1')")
                .antMatchers("/cas/new", "/cas/uploadImage").access("hasRole('1')")
                .antMatchers("/department/**", "/departmentType/**").access("hasRole('1')")
                .antMatchers("/employee/**").access("hasRole('1')")
                .antMatchers("/position", "/position/**").access("hasRole('1')")
                .antMatchers("/login").permitAll()
                .antMatchers("/resources/**").permitAll()
                .and().formLogin()
                .loginPage("/sign-in").permitAll()
                .defaultSuccessUrl("/",true)
                .failureUrl("/sign-in?error")
                .usernameParameter("email")
                .passwordParameter("password")
                .and().logout().logoutSuccessUrl("/sign-in?logout")
                .and().exceptionHandling().accessDeniedPage("/403");
    }
}

和登录页面(只是表单部分)

<c:url var="loginUrl" value="/login"/>
                <form action="${loginUrl}" method="post">
                    <div class="mb-4">
                        <label for="email" class="block text-gray-700 text-sm font-bold mb-2">Email</label>
                        <input id="email" type='text' name='email' value=''
                               class="block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500">
                    </div>
                    <div class="mb-4">
                        <label for="password" class="block text-gray-700 text-sm font-bold mb-2">Hasło</label>
                        <input id="password" type='password' name='password'
                               class="block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500">
                    </div>
                    <input name="submit" type="submit" value="Zaloguj"
                           class="shadow bg-purple-500 hover:bg-purple-400 focus:shadow-outline focus:outline-none text-white font-bold py-2 px-4 rounded"/>
                </form>

所以我得到了我的自定义页面进行登录,但当我提交它时,我得到了404白标签错误页面。 我错过了什么?我看到的每一个例子都只是使用默认的/login url发布登录详细信息,而且效果很好,我的例子显然连UserDetailsService都没有


共 (0) 个答案