本文最后更新于:February 2, 2022 pm
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转、依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
目录 主要是不同参数的configure方法的一些用法。
授权 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @Override protected void configure (HttpSecurity httpSecurity)
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 @Override protected void configure (HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/resources/**" , "/signup" , "/about" ).permitAll() .antMatchers("/admin/**" ).hasRole("ADMIN" ) .antMatchers("/db/**" ).access("hasRole('ADMIN') and hasRole('DBA')" ) .anyRequest().authenticated() .and() .formLogin() .usernameParameter("username" ) .passwordParameter("password" ) .failureForwardUrl("/login?error" ) .loginPage("/login" ) .permitAll() .and() .logout() .logoutUrl("/logout" ) .logoutSuccessUrl("/index" ) .permitAll() .and() .httpBasic() .disable(); }
formLogin方法:加了该方法之后,如果权限不通过,则跳转到登录页(spring自带的一个登录页),如果不想用spring自带的登录页,其中formLogin().loginPage(“/我的登录页.html”);表示自定义的登录页,如果不加该方法,那么权限不通过的时候,则直接在前端页面显示403错误。
参数传递 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="UTF-8" > <title > Title</title > </head > <body > <form th:action ="@{/toLogin}" method ="post" > 用户名:<input type ="text" name ="username" > <br > 密 码:<input type ="password" name ="password" > <br > <input type ="submit" value ="登陆" > </form > </body > </html >
当登录表单中的name属性值分别是:username、password时,可以这样写。
http.csrf().disable(); http.formLogin().loginPage("/toLogin" );
但,如果name属性不是这两个(如:user、pwd),则必须这样写:
http.csrf().disable(); http.formLogin().loginPage("/toLogin" ).usernameParameter("user" ).passwordParameter("pwd" );
这样才能成功获取对应值。