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

Spring Boot中Spring Security的XML配置

宰父淳
2023-03-14

我想使用基于XML的配置来实现安全性。第一个想法是对用户密码使用SHA-256或任何其他散列函数。我找不到用普通Java解决这个问题的好方法,所以我开始用XML配置东西。这是重点,当它开始变得有趣。

我的配置:

    null
<beans:beans xmlns="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:jdbc="http://www.springframework.org/schema/jdbc"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security.xsd>

    <http pattern="/css/**" security="none"/>
    <http pattern="/login.html*" security="none"/>

    <http>
        <intercept-url pattern="/**" access="ROLE_USER" />
        <form-login login-page='/login.html'/>
    </http>

    <authentication-manager>

        <authentication-provider>
            <user-service>
                <user name="admin" password="admin"
                      authorities="ROLE_USER, ROLE_ADMIN"/>
                <user name="bob" password="bob"
                      authorities="ROLE_USER"/>
            </user-service>
        </authentication-provider>
    </authentication-manager>

</beans:beans>

我将xml文件加载到类中,在类中可以找到public static void main:

@Configuration
@ComponentScan
@EnableAutoConfiguration
@Order(HIGHEST_PRECEDENCE)
@ImportResource({
        "/spring-security.xml"
})
public class PhrobeBootApplication extends SpringBootServletInitializer {
...
}

但在任何页面上都有以下异常:

[ERROR] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext 
...

所以resources/web-inf/web.xml中的配置似乎没有加载,如果我对文档有很好的理解,我应该在使用普通spring时使用它,而不需要引导。(应配置过滤器)。我说的对吗?

为什么会发生这种错误?在spring-boot中使用基于xml的spring-security配置是否有更好的方法?web.xml甚至是由Tomcat加载的吗?

共有1个答案

阮华美
2023-03-14

我也遇到了同样的问题,然后我更改了XML文件的路径,并将其保留在src/main/resources/spring中。一切正常。

@SpringBootApplication

@ImportResource("classpath:/spring/spring-security.xml")
 类似资料:
  • 本文向大家介绍SpringBoot + SpringSecurity 环境搭建的步骤,包括了SpringBoot + SpringSecurity 环境搭建的步骤的使用技巧和注意事项,需要的朋友参考一下 一、使用SpringBoot+Maven搭建一个多模块项目(可以参考这篇文章 --> 这里) 二、删除父工程的src文件,删除app、browser、core下的.java文件 依赖关系: dem

  • 本文向大家介绍SpringBoot 配合 SpringSecurity 实现自动登录功能的代码,包括了SpringBoot 配合 SpringSecurity 实现自动登录功能的代码的使用技巧和注意事项,需要的朋友参考一下 自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱: 很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密码是一件很麻烦的事。 自动登录功能

  • null 非常感谢你的帮助

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni

  • 本文向大家介绍springboot集成springsecurity 使用OAUTH2做权限管理的教程,包括了springboot集成springsecurity 使用OAUTH2做权限管理的教程的使用技巧和注意事项,需要的朋友参考一下 Spring Security OAuth2 主要配置,注意application.yml最后的配置resource filter顺序配置,不然会能获取token但

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:

  • 我正在使用Spring3.2 mvc框架创建一个应用程序。我正在使用Spring工具套件和Maven。当我将JAR3.1更新到3.2时,在servelet-context.xml和root-context.xml中出现以下错误:-