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

“状态”:403,“错误”:“禁止”,“消息”:“禁止”,“路径”:“/发布/创建”

百里飞捷
2023-03-14



我有基本授权,它基于Spring启动安全性:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    //...declared fields
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .passwordEncoder(passwordEncoder())
                .withUser("user")
                .password("userpass")
                .roles("USER")
                .and()
                .withUser("admin")
                .password("adminpass")
                .roles("ADMIN", "USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/login").permitAll()
                .antMatchers("/logout").permitAll()
                .anyRequest().authenticated()
                .and()
                .httpBasic()
                .and().logout().permitAll()
                .and()
                .formLogin()
                .loginProcessingUrl("/login")
                .permitAll()
                .and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .logoutSuccessUrl("/login");
    }

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

当我尝试在授权后添加新帖子时,我会收到这条消息:

{
    "timestamp": "2018-07-04T12:19:25.638+0000",
    "status": 403,
    "error": "Forbidden",
    "message": "Forbidden",
    "path": "/post/create"
}

在我的控制器中:

@RestController
public class PostController {
    @Autowired
    private PostDAO postDAO;

    @GetMapping("/posts")
    public Page<Post> getAllPosts(Pageable pageable) {
        return postDAO.findAll(pageable);
    }

    @PostMapping("/post/create")
    public Post createPost(@Valid @RequestBody Post post) {
        return postDAO.save(post);
    }
    //other end-points........
}

然而,读操作从我的控制器工作得很好,但积垢操作我没有访问权。

我的依赖性如下:

dependencies {
    compile ('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.hibernate:hibernate-core')
    compile('org.springframework.boot:spring-boot-starter-security')
    runtime('mysql:mysql-connector-java')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile('org.springframework.security:spring-security-test')
    testCompile('junit:junit')
}

知道吗?提前谢谢!

共有2个答案

农鸿德
2023-03-14

通常你的html表单标签应该包括一个生成csrf令牌的隐藏字段,但是,thymeleaf会自动为你做这件事,你应该检查你的html标签,看看是否没有一个"th:"被包括在内,如果没有,在表单标签中的"action"之前包括一个"th:",做到这一点,thymeleaf无形地生成csrf令牌。

通迪
2023-03-14

这是因为启用了CSRFCSRF保护在Java配置中默认启用。我们仍然可以使用下面给出的配置禁用CSRF

http .csrf().disable() .authorizeRequests() .anyRequest().permitAll(); 

从Spring Security 4. x开始-CSRF保护在XML配置中也默认启用;当然,如果需要,我们仍然可以禁用它:

<http>
    ...
    <csrf disabled="true"/>
</http>

注意:CSRF是一种攻击,它迫使最终用户在当前已通过身份验证的web应用程序中执行不需要的操作。

 类似资料:
  • Spring我是新来的。我试图在我的数据库中添加一个新目标。在我添加spring security之前,它是有效的,但现在如果我单击添加新目标,我有一个问题: 出现意外错误(类型=禁止,状态=403)。被禁止的 我的goat-add.html: WebSecurity配置类: 我的控制器: 我读到这个问题可以是如果不使用csrf,但我不明白我怎么能解决它。 所有代码:https://github.

  • 问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”

  • 有人能帮我找出我的SSLHandshake有什么问题吗? 我有一个Java客户端应用程序(使用Spring WS-security)试图将数据发送到服务器(不在我的控制范围内),我设置了以下内容 具有来自服务器的证书的客户端信任库 Java密钥库与我的私人密钥输入证书 在我的调试SSL握手日志(某些部分缩写)下面,我似乎找不到任何错误。。这是服务器端需要调查的事情吗?(我不确定,他们也不确定,这就

  • 问题内容: 我正在尝试使用python自动下载历史股票数据。我尝试打开的URL响应为CSV文件,但无法使用urllib2打开。我曾尝试按照前面几个问题中的说明更改用户代理,甚至还尝试接受响应cookie,但是没有运气。你能帮忙吗? 注意:相同的方法适用于yahoo Finance。 码: 错误 http_error_default中的文件“ C:\ Python27 \ lib \ urllib2

  • 嗨,我刚开始学习Spring、AJAX和JSON。当我试图发回一条信息时,我遇到了一个错误。 信息。jsp 控制器。JAVA 我尝试了很多不同的方法来解决这个问题,但都没有效果,我无法发布消息。 有什么帮助或原因让我一直犯这个错误吗? jquery。js:4帖子http://localhost:8080/spring/sendmessage403(禁止)发送@jquery。js:4 ajax@jq

  • 我正在做一个spring boot项目,其中包括thymeleaf,spring security。当我执行以下操作时效果很好:显示产品列表、显示产品详细信息、添加新产品、更新现有产品。 但当我执行-删除产品时,会出现以下错误: 白标错误页面 此应用程序没有/error的显式映射,因此您将其视为一种回退。 18 16:59:16BDT 2019 出现意外错误(类型=禁止,状态=403)。 被禁止的