java - 部署在 Tomcat 上的 Web 应用程序中的 Spring Security
问题描述
我是 Spring Security 的初学者,我正在尝试创建一个使用 Ldap 身份验证的简单 RestController。我的应用程序具有以下结构
springapplication-servlet.xml(调度程序)
application-context.xml(根上下文)
web.xml * 加载应用程序上下文 * 定义调度程序 servlet 到 url 映射 /summary
带有 RequestMapping /summary 的 RestController
SpringConfig 使用 @Configuration @EnableWebSecurity 注释并扩展了 WebSecurityConfigurerAdapter 我使用声明授权的地方
http.csrf().disable(); http.authorizeRequests().mvcMatchers("/summary").permitAll().anyRequest().authenticated().and().httpBasic()
和 ldap 身份验证
我正在使用 Tomcat 8 和 Java 8 运行该应用程序,但我收到一条错误消息,提示未找到“springSecurityFilterChain”并且
我尝试过的一种解决方案是尝试定义过滤器安全性,但错误仍然存在并抛出找不到 bean 以及“请确保在共享的 ApplicationContext 中配置 Spring Security 和 Spring MVC。”
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/summary</url-pattern>
</filter-mapping>
我在网上找到的大多数示例都使用 spring-boot 应用程序,我需要一个使用 Tomcat 的应用程序解决方案
谢谢,任何帮助表示赞赏
正如评论中所建议的,我添加了 web.xml 片段
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/application-context.xml </param-value> </context-param>
还有应用程序上下文片段
<context:component-scan base-package="com.myapp"/>
<util:properties id="myProperties" location="classpath:myProps.properties"/>
解决方案
推荐阅读
- java - 改造:将嵌套的 JSON 元素解析为列表
- angular - 如何在 ionic 3 中的 div 内设置背景图像?
- angular - 获取 Angular 资产文件夹中所有 svg 文件的列表
- symfony - Symfony 4.2 中没有根节点的树构建器
- ejabberd - 在 ejabberd 的 vcard 中添加字段时无法理解崩溃
- android - 通过 Android Studio 进行 Android 到 Android 远程连接
- ruby-on-rails - Ruby - 带有通配符的请求路由不起作用
- wordpress - WordPress 页面编辑器显示不正确
- java - 将 Spark 与已实现的日志记录机制一起使用?
- java - 如何使用广播接收器警报管理器每 10 秒向服务器发送一次文本