当前位置: 代码迷 >> 综合 >> SpringSecurity 登录案例
  详细解决方案

SpringSecurity 登录案例

热度:44   发布时间:2023-11-24 03:26:38.0

一、引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>

二、配置文件

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
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.WebSecurityConfigurerAdapter;/*** spring security 配置* @author Administrator**/
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled=true)//允许全局的方法注解,(开启Security注解,写在controller里面的方法上面直接可以加注解)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
    /*** 配置用户认证*/@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication() //写在内存中的.withUser("java1234").password("123456").roles("ADMIN");//角色一定要加}/*** 请求授权*SpringSecurity对跨域、。。。的请求要求都比较高*csrf():不允许跨域请求,同时这里去掉其他的配置,否则很容易报错,影响开发进度 */@Overrideprotected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable().cors().disable().headers().disable().authorizeRequests().antMatchers("/","/static/**","/film/**","/webSite/**","/webSiteInfo/**","/aboutMe").permitAll() // 配置不需要身份认证的请求地址.anyRequest().authenticated()  // 其他所有访问路径需要身份认证.and().formLogin().loginPage("/login")  // 指定登录请求地址.defaultSuccessUrl("/admin") // 登录成功后的默认跳转页面.permitAll()                    //允许执行前面所有的.and().logout().logoutSuccessUrl("/login")   //与上面那个/login不一样,上面的是请求的后台.permitAll();}}

三、案例演示:
1、启动项目,发现在项目启动时就依次加载了下面两个config方法:
在这里插入图片描述

2、先在浏览器地址栏请求 admin后台管理页面:
在这里插入图片描述
回车后,由于当前用户尚未登录,也就与上图第一个config方法中不相符,因此

浏览器页面会自动跳到登录页面:
在这里插入图片描述
用户名密码错误后:
在这里插入图片描述
在这里插入图片描述

正确登录后,地址栏变为localhost/admin,这个地址是登录之前 请求的一个地址,因此可以说它有个记忆的功能,当你登录成功后,去请求你之前访问的地址:
在这里插入图片描述
代码地址:
SpringSecurity小demo代码地址链接

  相关解决方案