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

Spring WebSecurity配置使用.忽略()不起作用

艾照
2023-03-14

我已经为此挣扎了几天。除了一些奇怪的事情似乎不一致和不可预测地发生,只需注释一些代码,运行程序,然后取消注释并再次运行,我不明白覆盖各种配置方法是如何工作的。

我希望WebSecurity总是忽略“/static/**”。

启动应用程序并导航到主页后,我可以访问我允许所有页面的所有页面,但是“/static/**”中的所有内容都将被忽略,直到我导航到登录页面并以经过身份验证的用户身份登录。因此,应用程序仅显示为带有文本的白页,在登录之前根本没有任何样式。

这是我的 AppSecurityConfig 类的代码。我省略了用于处理登录成功和失败的帮助程序方法,并且我还必须使用不同的帐户类型来充当不同的角色,因此为了简化起见,我在这里只包含一个帐户。我认为存在问题的部分是在configure(WebSecurity web)方法中,我在其中调用.ignoring()方法并传递“/static/**”参数。提前感谢您:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private CompanyService companyService;

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(companyService);
    }

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

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/",
                        "/account_registration",
                        "/candidate_registration",
                        "/addCandidate",
                        "/company_registration",
                        "/addCompany",
                        "/select_account_type",
                        "/candidate_login",
                        "/company_login").permitAll()
                .antMatchers("/company_profile").hasRole("COMPANY")
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/company_login")
                .permitAll()
                .successHandler(companyLoginSuccessHandler())
                .failureHandler(companyLoginFailureHandler())
                .and()
            .logout()
                .logoutSuccessUrl("/");

    }
}

共有1个答案

方焱
2023-03-14

我的静态文件夹的路径是“src/main/resources/static ”,但是我按照Sam说的做了,打开了开发工具,发现“static”目录中的所有内容都被直接引用了。例如,有这样引用的目录:“/vendor/...”和“/图像/...”,由于安全原因被引用但被忽略。“静态”目录中还有一些文件,如“app.css”、“app.js”和“favicon.png”有一些奇怪的行为。看起来它们并没有被忽略,而是显示了不同的颜色和样式,除非我也将它们作为参数添加到。gitIgnoring()方法,如“/app.css”等。这个项目是通过一个TeamTreehouse教程,然后在我的6人团队中的几个人之间重构和添加自定义样式来构建的,我非常确定在这个项目中继承了许多我自己和前端人员在样式方面不理解的东西。

虽然可能不太理想,但似乎有效的修复方法是从.ignoring()方法中删除“/static/**”,并将其替换为“static/”目录中的所有内容:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers( "/images/**",
        "/vendor/**",
        "/app.css",
        "/app.js",
        "/favicon.png");
}
 类似资料:
  • 注意:我正在手动转发测试时间。(如果这有什么不同的话)

  • 这是我第一次使用Spring-Data-jpa和Querydsl。 我正在尝试配置数据模型的自动生成。 我执行了以下步骤: 我在pom中添加了以下依赖项。xml 然后我添加了以下插件 但我总是在pom中遇到同样的错误。xml: 生命周期配置未涵盖插件执行:com。迈塞马。maven:maven apt插件:1.0.2:流程(执行:默认,阶段:生成源代码) 并且未生成和填充target/genera

  • 我在may Spring应用程序中添加了安全问题,所以我想通过调试Spring。 Log4j正在工作,因为我的服务正在将调试信息记录到控制台。但是Spring没有记录任何东西到我的控制台 这是我的 在我如此放置。结果: 我尝试在我的网站上添加这个。正如在这个问题中所说的xml 我在其他应用程序中使用了此调试,但我真的没有看到原因。。。谢谢你的帮助

  • 我是新的stackoverflow,但阅读吨的帖子在这里和现在stuck.myapplication.properties阅读,但配置hikaricp的部分被忽略/没有影响。 我读了https://www.javadevjournal.com/spring-boot/spring-boot-hikari/,在那里遵循了这些步骤,仍然取得了任何成功。 波姆。xml 应用属性 黑名单申请。课程: 配置

  • 问题内容: 我想用我的主要Java项目及其所有依赖项创建一个jar文件。所以我在pom文件中创建了以下插件定义: 所以我执行,将所有的依赖复制到而不是复制上,效果很好。有任何想法吗? 问题答案: 正常:您配置了名为的特殊执行,但是,直接在命令行上调用目标会创建默认执行,该默认执行与您配置的执行不同。因此,不会考虑您的配置。 在Maven中,可以在2个地方配置插件:用于所有执行(在级别使用)或用于每

  • 我定义了“静态”hazelcast配置: 其中“10.0.0.2”是我的localhostip。我只希望将hazelcast的一个实例添加到我的tcpIpConfig成员中。我的朋友坐在同一个网络中,拥有编号为“10.0.0.3”的IP。他懒得从git上共享的属性文件中更改密码和组名,并且正在连接到我的集群。为什么他能够连接到我的集群?我如何防止这种情况?

  • 下面是我的pom.xml: 在Entourage-0.0.1-snapshot.jar中,config.properties位于根,其内容与上面相同(即localhost)。 我不是在胡编乱造!

  • 我在Spring Boot(1.5.7.release)中添加了带有JWT身份验证的Spring Security性(5.0.0.release),但是CORS似乎不起作用。我添加了这里描述的CORS配置。我还尝试将@CrossOrigin添加到控制器中,但似乎没有改变任何东西。 和Spring Security调试日志: 下面是无效CORS请求的日志: