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

url 在使用智能时未规范化错误,但在使用 STS 时未规范化错误

郎和志
2023-03-14

开发的网站在远程服务器和本地机器上运行良好(使用STS IDE时),最近我开始使用Intellij IDEA(我创建了一个网站代码的副本,没有任何更改),我开始得到URL未规范化错误。

intellij处理Spring Security性的方式是否与STS有所不同?或者原因是什么?

我不想使用自定义火力。

@EnableGlobalMethodSecurity(prePostEnabled=true)
@Configuration
@EnableWebSecurity
 public class SecurityConfiguration extends WebSecurityConfigurerAdapter{

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationProvider(authenticationProvider())
            .jdbcAuthentication()
                .usersByUsernameQuery(usersQuery)
                    .authoritiesByUsernameQuery(rolesQuery)
                        .dataSource(dataSource);

}

@Override
protected void configure(HttpSecurity http) throws Exception {
    // URLs matching for access rights
    http.authorizeRequests()

            .antMatchers( "/", "/contact","/register").permitAll()
            .antMatchers("/accounts").hasAnyAuthority("SUPER_USER","ADMIN_USER")
            .anyRequest().authenticated()
            .and()
            // form login
            .csrf().disable().formLogin()
            .loginPage("/index")
            .failureUrl("/index?error=true")
            .defaultSuccessUrl("/user")
            .usernameParameter("email")
            .passwordParameter("password")
            .and()
            // logout
            .logout()
            .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
            .logoutSuccessUrl("/").and()
            .exceptionHandling()
            .accessDeniedPage("/access-denied");


}

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/**", "/static/**", "/css/**", "/js/**", "/images/**");
}

这是来自属性:

     # Spring MVC view prefix.
     spring.mvc.view.prefix=/templates/
     # Spring MVC view suffix.
     spring.mvc.view.suffix=.html

错误是:

 org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.

注:我正在使用JDK8、Spring Boot 2、Spring Security、thymeleaf、intellij U 2019.2

共有1个答案

毋树
2023-03-14
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized.

在springboot配置的可嵌入服务器上运行相同的源代码时,使用哪个IDE不应该有任何差异。当发送到服务器的HTTP请求没有标准化时,就会发生此错误,该URL包含等字符序列。//…////。所以我怀疑这是由于您使用不同的URL来浏览应用程序。例如,您不小心在URL中添加了“/”,例如http://127.0.0.1:8080/app//index.html

您可以通过以下方式更改为使用安全性较低的< code>HttpFirewall来避免此类检查:

@Override
public void configure(WebSecurity web) throws Exception {
    web.httpFirewall(new DefaultHttpFirewall());
    //another configuration .....
}

注:虽然它被称为< code>DefaultHttpFirewall,但它不是Spring Security从4.2.4开始使用的默认< code>HttpFirewall,它的安全性低于实际的默认< code>StrictHttpFirewall

 类似资料:
  • 问题内容: PHP中是否存在用于URL规范化的预先存在的函数或类? 具体来说,请遵循Wikipedia文章中有关URL规范化的语义保留规范化规则(或我应该遵循的任何“标准”)。 将方案和主机转换为小写 转义序列中的大写字母 添加尾随/(到目录,而不是文件) 删除默认端口 删除点段 现在,我认为我将只使用,并分别应用规则,但我希望避免重新发明轮子。 问题答案: Pear Net_URL2库看起来至少

  • 我想使用Batchnormalization来规范化批次维度,但keras中的批次维度自然是无维度的。那我该怎么办呢。 keras示例显示,conv2d的轴为-1,这表示通道尺寸。 轴:整数,应规格化的轴(通常是特征轴)。例如,在具有data\u format=“channels\u first”的Conv2D层之后,在BatchNormalization中设置axis=1。

  • 主要内容:范式的类型规范化是在数据库中组织数据的过程。 规范化用于最小化关系或关系集的冗余。 它还用于消除插入,更新和删除异常等不良特性。 规范化将较大的表分成较小的表,并使用关系链接它们。 普通表单用于减少数据库表中的冗余。 范式的类型 有四种类型的范式: 范式 描述说明 1NF 如果它包含原子值,则关系为第范式(1NF)。 2NF 如果它在1NF中,则关系将在2NF中,并且所有非关键属性完全依赖于主键。 3NF

  • 问题内容: 在Python中,是否存在标准化unicode字符串的标准方法,以使其仅包含可用于表示它的最简单的unicode实体? 我的意思是,一些东西,想翻译的顺序来? 查看问题出在哪里: 但现在: 当然,我可以遍历所有字符并进行手动替换等,但是效率不高,我敢肯定我会错过一半的特殊情况,并且会犯错误。 问题答案: 该模块提供一个功能,您要标准化为NFC格式: NFC或“普通形式组合”返回组成的字

  • 问题内容: 在Java中创建XML规范格式的最简单方法是什么?你有一些完成的代码吗?我在网上找到了几个链接,例如this,this和this,但我无法使其正常工作:/ 谢谢, 伊万 编辑:我使用了在那里提出的规范化器,但是得到了奇怪的结果。更精确地说,此方法不会删除元素之间的空格…这就是我得到的: 问题答案: Apache XML Security项目 的Canonicalizer类:

  • 非规范化数据不存储规范化的数据。换句话说非规范化意味着相同数据的多个拷贝同时存在。 上一章中,我们在帖子中非规范化评论总数,以避免每次都加载所有的评论。在数据建模意义上说这是冗余的,因为我们可以通过计数每个评论,随时计算出该总数(当不考虑运行速度)。 非规范化通常意味着额外的开发工作。在例子中,我们每次添加或删除评论时,还需要同时更新相关的帖子,以确保 commentsCount 字段保持准确。这