首页 文章

Spring-Security 5总是302

提问于
浏览
0

我正在尝试使用标准的Spring Security API来测试我的web api,但是每当我登录到我的应用程序时,/ test.html api都会继续返回302重定向 . username:admin / password:admin

在此处输入图像说明

package com.example.demo;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    @SpringBootApplication
    public class DemoApplication {

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

        @RequestMapping("/hello")
        public String hello() {
            return "hello";
        }
    }

package com.example.demo;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
    import org.springframework.security.crypto.password.PasswordEncoder;

    @Configuration
    @EnableWebSecurity
    public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter {

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

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.formLogin()
                    .loginPage("/test.html").permitAll()
                    .loginProcessingUrl("/user/login")
                    .and()
                    .authorizeRequests()
                    .antMatchers("/test.html").permitAll()
                    .anyRequest()
                    .authenticated();
        }
    }

package com.example.demo;

    import org.springframework.security.core.authority.AuthorityUtils;
    import org.springframework.security.core.userdetails.User;
    import org.springframework.security.core.userdetails.UserDetails;
    import org.springframework.security.core.userdetails.UserDetailsService;
    import org.springframework.security.core.userdetails.UsernameNotFoundException;
    import org.springframework.stereotype.Component;

    @Component
    public class UserDetailsServiceImpl implements UserDetailsService {

        @Override
        public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
            return new User("admin",
               "$2a$10$vs7veyVUaqeGyVlxXpp94O7BcmzcF2HGUmH2va6XDVCj2mK8uFzRi",
               AuthorityUtils.commaSeparatedStringToAuthorityList("admin"));
        }
    }

https://github.com/woshituotuo/demo.git

1 回答

  • 0

    DONE

    跨站点请求伪造


    @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.formLogin()
                    .loginPage("/test.html").permitAll()
                    .loginProcessingUrl("/user/login")
                    .and()
                    .authorizeRequests()
                    .antMatchers("/test.html").permitAll()
                    .anyRequest()
                    .authenticated()
                    .and()          +
                    .csrf()         +
                    .disable();     +
    
        }
    

相关问题