我正在尝试学习Spring安全性,并且我想为spring petclinic示例应用程序添加安全功能(代码为at this link)。但是,网上的样品存在问题。
例如,我想使用this example,但它在init文件夹中使用.java文件(您可以查看at this link)来执行我认为petclinic应用程序使用xml执行的任务文件(您可以查看at this link)。
我想坚持使用xml方法,因为我花了好几个月使用xml配置,但我不明白使用xml配置和java配置之间的区别。
是否有人可以帮助我了解我必须对this example进行哪些更改才能使其与spring petclinic应用中的xml配置一起使用?
或者,如果您能够快速简便地在spring petclinic应用程序上启动并运行安全性,以便我可以通过修改工作代码来开始学习,那也没关系。
我开始使用spring教程为petclinic应用程序(at this link)添加安全性,但它不可用,因为它已有很多年的历史并且使用了过时版本的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
by clicking on this link。
但是现在web.xml
中的更改导致错误,表明Tomcat无法启动,因为SpringSecurityFilterChain
的定义是多余的。我已在文件共享网站上发布了整个堆栈跟踪,您可以阅读by clicking on this link。
如何摆脱此错误以便启动tomcat,以便为应用启用登录功能?
答案 0 :(得分:0)
将此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安全设置的tutorial。