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

Autowired在扩展spring安全类的类中使用时不工作

袁高峰
2023-03-14

我无法在扩展spring安全类(org.springframework.security.web.authentication.simpleurlauthenticationsuccesshandler)的类内部“自动连接”。

我通过在security-config.xml中添加已经在xml spring配置文件中编写的以下代码使其工作: 和我自动连线的bean。

我有两个问题:

  1. 为什么我要编写两倍于此代码(在xml spring配置文件和security-config.xml中)
  2. 有没有办法告诉security-config.xml“查找”xml spring配置文件内部编写的代码?这样我就不应该编写两次代码了。

谢谢

共有1个答案

嵇弘新
2023-03-14

尝试从主beans.xml导入security-beans.xml。

两个文件应该在同一个文件夹中。导入,例如:

<import resource="spring-security.xml"/>

在web.xml中,编写如下内容:

<!-- to integrate Spring -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>

如果您害怕导入,另一种方法是持有一个beans.xml,它将包括所有bean--既包括安全bean也包括其他bean。在这种情况下,web.xml将如下所示:

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>contextAttribute</param-name>
        <param-value>org.springframework.web.servlet.FrameworkServlet.CONTEXT.spring</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

而您的spring beans文件将是spring-servlet.xml。

赫特。

 类似资料:
  • org.springframework.beans.factory.beanCreationException:创建名为“birthday controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.springframework.beans.factory.beanCreationException:无法自动连接字段:private com.esri.birthd

  • 我正试着用带Spring的泽西。但无论如何,我不明白为什么Spring依赖项没有被注入到Rest类中。 我的web.xml文件如下所示 My ApplicationContext.xml是标准的,并指定组件扫描的基本包:

  • 我已经用很多方法搜索了这个,但是找不到任何与它相关的东西。我有一个问题,在另一个bean(扩展)中没有spring bean是自动连线的。 我有的是这样的: 正在发生的是,B内部的RandomSpringBean在被另一个自动连接B的类调用时没有被自动连接,而只是被自动连接C的类调用,如下所示: D和E都在其他类内部被自动连接。如果我注释掉/移除C,B就会恢复正常工作。 我希望那不会太混乱。 PS

  • 我在React中测试ES6语法,并编写如下组件:

  • 问题内容: 所以对于这个项目,我试图在运行时扩展一个类。我想知道,这有可能吗?如果是这样,我该怎么办?是否有用于这些目的的库? 问题答案: CGLib是您要查找的库。它在扩展类或在运行时实现接口方面非常强大,因此许多流行的框架(如Spring或Hibernate)都使用它。 您可以使用以下代码创建类扩展 尽管您可能会使用具有所需逻辑的有用的方法拦截器替换回调。

  • 问题内容: 我正在React中调试ES6语法,并编写如下组件: 但是浏览器使我警惕: 警告:getInitialState是在Loginform(普通的JavaScript类)上定义的。仅使用React.createClass创建的类支持此功能。您是要定义状态属性吗? 我可以使用传统语法来处理它,但是正确的ES6语法是什么? 另一件事,我认为传统语法是一个对象,因此其中的功能由逗号分隔,但是对于需