使用Spring Security与独立的Tomcat进行身份验证

时间:2014-06-04 10:15:10

标签: spring tomcat spring-security spring-boot

我希望Tomcat(或者更确切地说是管理员)来处理用户管理。 在Spring中,我只想保护一些端点(index.html和两个RESTful控制器)并将其绑定到用户或更好的组/角色。

我想避免在Spring中使用xml配置,只使用类和注释。 tomcat中的Xml配置没问题: - )

启动弹簧我看到一个日志条目

  

2014-06-04 11:37:31.676 INFO 27296 --- [on(2)-127.0.0.1] b.a.s.AuthenticationManagerConfiguration:

     

使用应用程序端点的默认密码:543fbdb8-c5d0-4b1b-b7ce-cd6fd008520a

     

2014-06-04 11:37:31.775 INFO 27296 --- [on(2)-127.0.0.1] ossweb.DefaultSecurityFilterChain:创建过滤器链:org.springframework.security.web.util.matcher.AnyRequestMatcher @ 1,[org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5867ecdd,...

     

...

     

2014-06-04 11:37:31.794 INFO 27296 --- [on(2)-127.0.0.1] o.s.b.c.embedded.FilterRegistrationBean:Mapping filter:' springSecurityFilterChain'致:[/ *]

     

...

     

2014-06-04 11:37:31.907 INFO 27296 --- [on(2)-127.0.0.1] oswshandler.SimpleUrlHandlerMapping:将URL路径[/ login]映射到[class org.springframework]类型的处理程序上。 web.servlet.mvc.ParameterizableViewController]

尝试调用安全路由时,我收到了一个登录表单,但是使用 tomcat-users.xml 中的信息我收到错误用户名和密码无效。

那我错过了什么?

设置

我有

  • vanilla Apache Tomcat 8.0.8
  • 修改后的 conf / tomcat-users.xml
  • 修改后的 conf / server.xml
  • 我本地分支和此文件夹(intellij模块)中Securing Spring Web Guide的克隆可部署版本,请参阅github repo

配置

弹簧

请参阅 WebSecurityConfig 类。

Tomcat的users.xml中

<!-- ... --->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="ROLE_stakeholder"/>
<user username="stakeholder" password="Foobarbaz" roles="ROLE_stakeholder,manager-gui,manager-script,manager-jmx,manager-status"/>
<!-- ... --->

server.xml中

<!-- ... --->
<Engine name="Catalina" defaultHost="localhost">
    <!-- ... --->
    <Realm className="org.apache.catalina.realm.MemoryRealm" />
</Engine>

0 个答案:

没有答案