首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring boot: 404 on login post调用

spring boot: 404 on login post调用
EN

Stack Overflow用户
提问于 2021-05-15 17:30:40
回答 1查看 23关注 0票数 0

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

代码语言:javascript
复制
@SpringBootApplication
public class CompetencyMatrixApplication {

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

}
代码语言:javascript
复制
@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");
    }
}

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

代码语言:javascript
复制
<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都达不到

EN

回答 1

Stack Overflow用户

发布于 2021-05-15 18:59:58

我发现了问题,如果有人来这里寻找解决方案,对我来说,添加http.csrf().disable();解决了这个问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67545250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档