spring boot + spring security 多module场景下 spring security 不起作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 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()
        ;
    }
}

猜你喜欢

转载自blog.csdn.net/lucky9322/article/details/87798708