当前位置: 首页 > 知识库问答 >
问题:

spring-安保5始终302

明正德
2023-03-14

我正在尝试测试我的web api,它使用标准的spring安全api进行安全保护,但是每当我登录到应用程序时,/test.html api总是返回302重定向。用户名:admin/密码: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

共有2个答案

严信瑞
2023-03-14

已完成

跨站点请求伪造


    @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();     +

    }
冀嘉木
2023-03-14

.HasanyRole之后需要put,在put之后需要put用户角色您需要put.anyRequest().Authenticated()仅此而已

 类似资料:
  • 我将Spring Boot版本='1.4.0.rc1'与Spring Boot Stormpath 1.0.2一起使用。 我试图使用多部分文件上传,但MultipartFile在控制器中总是为空。 这是控制器,在下面的代码中,总是成功,总是失败: 我的集成测试使用改型: 我使用自动配置,所以我唯一的自定义配置类配置StormPath: 更新:这是传出请求。我不确定如何在多部分解析器本身中启用日志记

  • 我正在构建一个反向代理服务器,它将授权http请求并将其传递给一些内部API。 我根据DB中的条目授权传入请求。 这个项目中的性能是优先的——反向代理服务器不应该增加太多响应时间。 简而言之: 我正在使用来查询数据库。我在Spring配置中的init期间打开Hibernate会话: 然后我将会话注入DAO层,并在read方法中使用它: 正如您所看到的,我并不是在每次DAO调用中都关闭/打开会话。我

  • 我正在尝试使用JpaRepository、spring boot和mysql发布文章 我有一张像这样的桌子 每当我尝试保存数据时,无论我传递什么值,列user总是0。 存储库如下所示 控制器如下所示

  • 问题内容: 我读到numpy在四舍五入方面没有偏见,并且它的工作方式与其设计方式相同。那就是“如果您总是将0.5舍入到下一个最大数字,那么一堆舍入数字的平均值可能会比未舍入数字的平均值稍大:这种偏差或漂移可能会对某些数值算法产生非常不利的影响,使它们不准确。” 忽略此信息并假设我总是想四舍五入,如何在numpy中做到这一点?假设我的数组可能很大。 为了简单起见,假设我有数组: 小数看起来像: 整体

  • 问题内容: 在Objective-C for Cocoa Apps中,可以使用这种方式使窗口始终位于顶部吗? 如何用Swift实现相同的目标? 导致构建错误 问题答案: 要更改窗口级别,您不能在viewDidload中执行此操作,因为视图的window属性始终在那里为零,但是可以通过覆盖viewDidAppear方法或IBAction方法来实现: 斯威夫特1 迅捷2 迅捷3 斯威夫特4 最后,他们

  • 问题内容: 我正在使用Java JDBC将日期写到SQL Server 2008,然后将其读回。 回读的日期始终比实际写入的日期早两天。 我正在使用准备好的语句插入包含Date字段的行。日期值由以下人员提供: 将日期写入数据库后,如果运行,SQL Server将向我显示正确的日期: 如果我通过JDBC运行相同的查询,则使用以下命令从结果集中检索日期值 插入的行是表中唯一具有非空日期的行,因此这似乎