Java 为spring petclinic添加安全性

Java 为spring petclinic添加安全性,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我正在尝试学习Spring安全性,我想将安全功能添加到Spring petclinic示例应用程序(其代码为)。然而,网络上的样本存在问题 例如,我想使用,但它使用init文件夹(您可以查看)中的.java文件来执行任务,我认为petclinic应用程序使用xml文件(您可以查看)来执行这些任务 我想坚持使用xml方法,因为我已经花了好几个月的时间使用xml配置,但我不理解使用xml配置和java配置之间的区别 有人能帮我了解为了让它与spring petclinic应用程序中的xml配置一起工

我正在尝试学习Spring安全性,我想将安全功能添加到Spring petclinic示例应用程序(其代码为)。然而,网络上的样本存在问题

例如,我想使用,但它使用init文件夹(您可以查看)中的.java文件来执行任务,我认为petclinic应用程序使用xml文件(您可以查看)来执行这些任务

我想坚持使用xml方法,因为我已经花了好几个月的时间使用xml配置,但我不理解使用xml配置和java配置之间的区别

有人能帮我了解为了让它与spring petclinic应用程序中的xml配置一起工作,我需要做哪些更改吗?

或者,如果你能展示一种快速简便的方法,让工作安全性在SpringPetClinic应用程序上启动并运行,这样我就可以通过修补工作代码开始学习,那也没问题

我开始使用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,并启用应用程序的登录功能?

将此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安全设置的过程。

感谢您的帮助。我不明白你的答案。你介意说得更清楚些吗?首先,您是说将您的
SecurityConfig
类添加到petclinic应用程序的此文件夹中吗?我把这个问题重新解释成另一个更清楚的问题。你愿意帮我吗?以下是链接: