增加springpetclinic的安全性

我正在尝试学习Spring安全性,并且我想为spring petclinic示例应用程序添加安全function( 该链接的代码在此处)。 但是,网上的样品存在问题。

例如,我想使用这个例子 ,但它在init文件夹中使用.java文件(你可以在这个链接中查看)来执行我认为petclinic应用程序使用xml文件执行的任务(你可以在这里查看) 链接 )。

我想坚持使用xml方法,因为我花了很多个月使用xml配置,但我不明白使用xml配置和java配置之间的区别。

有人可以帮助我了解我必须对此示例进行哪些更改才能使其与spring petclinic应用程序中的xml配置一起使用?

或者,如果您可以快速简便地在spring petclinic应用程序上启动并运行安全性,以便我可以通过修改工作代码来开始学习,那也没关系。

我开始使用spring教程为petclinic应用程序添加安全性( 在此链接中 ),但它不可用,因为它已经很多年了,并且使用了过时版本的spring。


编辑:

基于JHadesDev的建议,我创建了一个名为org.springframework.security.samples.petclinic.config的新包,并在其中放置了以下两个文件:

SecurityConfig.java:

 @Configuration @EnableWebMvcSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired public void registerGlobalAuthentication( AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("user").password("password").roles("USER"); } } 

MessageSecurityWebApplicationInitializer.java

 @Order(2) public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {} 

尝试运行该应用程序然后导致错误,指示Tomcat无法启动,因为需要识别SpringSecurityFilterChain ,因此我更改了我的web.xml以包含它。 您可以通过单击此链接来阅读我的整个web.xml

但是现在web.xml中的更改导致错误,指示Tomcat无法启动,因为SpringSecurityFilterChain的定义是多余的。 我已将整个堆栈跟踪发布到文件共享站点上,您可以通过单击此链接来阅读该站点。

如何摆脱此错误以便tomcat启动,以便为应用程序启用登录function?

将此java配置放在其他@Config文件旁边:

 @Configuration @EnableWebMvcSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin(); } } 

此配置可确保在应用程序中保护所有URL,并生成默认登录页面。 这将是一个很好的起点,另请参阅本教程 ,该教程使用Java配置(而不是XML)进行Spring安全设置。