spring security java configuration

本文介绍如何使用Java配置来设置Spring Security。首先通过创建一个继承自WebSecurityConfigurerAdapter的类来定义安全配置,并实现用户详细信息服务。接着通过AbstractSecurityWebApplicationInitializer确保过滤器链正确注册。
摘要由CSDN通过智能技术生成
  1. hello web security java configuration

    第一步创建 Spring Security Java 配置文件。
    这个配置创建一个 springSecurityFilterChain 过滤器负责所有安全。
    (保护URLs,验证用户名和密码,重定向表单提交)

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.*;
import org.springframework.security.config.annotation
                    .authentication.builders.*;
import org.springframework.security.config.annotation
                    .web.configuration.*;

@EnableWebSecurity
public class WebSecurityConfig extends 
                    WebSecurityConfigurerAdapter {

    @Bean
    public UserDetailsService userDetailsService() 
            throws Exception {
    InMemoryUserDetailsManager manager = new 
                        InMemoryUserDetailsManager();
    manager.createUser(User.withUsername("user")
                .password("password").roles("USER").build());
                return manager;
            }
}

1.1 AbstractSecurityWebApplicationInitializer
下一个步骤注册 springSecurityFilterChain.
这个可以在 spring’s WebApplicationInitializer 的 java 配置的完成 在Servlet 3.0环境中。
spring Security 提供 AbstractSecurityWebApplicationInitializer 确保 springSecurityFilterChain 被注册.

1.2 AbstractSecurityWebApplicationInitializer without Existing Spring
如果没有使用 spring or spring mvc.

import org.springframework.security.web.context.*;

        public class SecurityWebApplicationInitializer
            extends AbstractSecurityWebApplicationInitializer {

            public SecurityWebApplicationInitializer() {
                super(WebSecurityConfig.class);
            }
        }
SecurityWebApplicationInitializer 会做的事:
1) 位每个 URLs 注册 springSecurityFilterChain filter
2) 添加 ContextLoaderListener 加载 WebSecurityConfig

1.3 AbstractSecurityWebApplicationInitializer with Spring MVC

如果用 spring,可能已经有 WebApplicationInitializer 加载 spring 配置。
如果用之前的配置会报错。我们应该注册 spring security 到当前的 ApplicationContext.

如果使用 SPring MVC 我们的 SecurityWebApplicationInitializer 如下:
import org.springframework.security.web.context.*;

    public class SecurityWebApplicationInitializer
        extends AbstractSecurityWebApplicationInitializer {

    }
这个只是为每个 URL 注册 springSecurityFilterChain filter.之后要确保 WebSecurityConfig 加载到
现有的 appicationInitilizer.
如果用的是 spring MVC 应该添加到 getRootConfigClasses():
public class MvcWebApplicationInitializer extends
            AbstractAnnotationConfigDispatcherServletInitializer {

        @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class[] { WebSecurityConfig.class };
        }

        // ... other overrides ...
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值