版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lucky9322/article/details/87798708
spring boot + spring security 多module场景下 spring security 不起作用
问题场景描述
security-demo
负责项目的整个安全模块,和安全有关的都在这个模块里
app-demo
是项目的运行模块按照这个准备进行项目搭建,可是对应的配置一直没有起作用
spring boot + spring security 多module场景下 spring security 不起作用
解决途径
解决的方式竟然是包名
app-demo
包名为com.lucky
security-demo
包名为com.lucky.securitydemo
包含在运行主module下就可以了
这么做的原理不知道是为什么,还希望有清除的解释下。
idea创建多module项目
这个就不写了
结果如图所示
app-demo是主运行module
package com.lucky;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AppDemoApplication {
public static void main(String[] args) {
SpringApplication.run(AppDemoApplication.class, args);
}
}
security-demo是安全模块配置
package com.lucky.securitydemo;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* Project: test
* Created by Zhangdd on 2019/2/15.
*/
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true) //开启方法权限控制
public class TestSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println("TestSecurityConfig.configure");
http.formLogin()
.loginPage("/login.html")//用户未认证时,转跳到认证的页面
.loginProcessingUrl("toLogin")//form中action的地址,也就是处理认证请求的URL
.and()
.authorizeRequests()
.antMatchers("/login.html", "/toLogin").permitAll()
.anyRequest().authenticated()
;
}
}