用户登录和授权(二)springmvc+security实现

全部代码地址:

https://github.com/pshdhx/security-springmvc-pshdhx.git

首先,拦截用户的请求就不用web.xml或者是spring-mvc.xml来做了。直接上security的配置文件;

/**

 * security配置

 */

@EnableWebSecurity

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    //配置用户信息服务

    @Bean

    public UserDetailsService userDetailsService() {

        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();

        manager.createUser(User.withUsername("zhangsan").password("123").authorities("p1").build());

        manager.createUser(User.withUsername("lisi").password("456").authorities("p2").build());

        return manager;

    }

    @Bean

    public PasswordEncoder passwordEncoder() {

        return NoOpPasswordEncoder.getInstance();

    }

    //配置安全拦截机制

    @Override

    protected void configure(HttpSecurity http) throws Exception {

                                                            //访问此处拦截到的登录界面??

        http .authorizeRequests()

                .antMatchers("/r/r1").hasAuthority("p1")

                .antMatchers("/r/r2").hasAuthority("p2")

                .antMatchers("/r/**").authenticated()

                .anyRequest().permitAll()

                .and()

                .formLogin().successForwardUrl("/login‐success");

    }

}

注意点:

  1. security的配置文件加注解:@EnableWebSecurity
  2. 配置用户信息服务(用户名,密码,权限)
  3. 配置密码加密方式
  4. 配置安全拦截机制

Spring容器初始化加载security配置文件;

 //spring容器,相当于加载 applicationContext.xml,加载配置类。

    @Override

    protected Class<?>[] getRootConfigClasses() {

        //return new Class[]{ApplicationConfig.class};

        return new Class<?>[] { ApplicationConfig.class, WebSecurityConfig.class};

    }

Security初始化;

/**

 * 初始化security

 */

//初始化类不需要注释

public class SpringSecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {

    public SpringSecurityApplicationInitializer() {

//        如果配置了spring容器初始化,此处注释即可。因为spring初始化加载了webSecurityConfig.class;

        //super(WebSecurityConfig.class);

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值