• springboot07-security


    1.pom中添加thymeleaf和security依赖

    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <!--测试-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--mvc-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--thymeleaf模板-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <!--权限-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    </dependencies>
    View Code

    2.配置WebSecurityConfig

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    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;
    
    /**
     * WebSecurityConfig类描述:
     *
     * @author yangzhenlong
     * @since 2017/2/22
     */
    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests()
                    .antMatchers("/", "/index").permitAll()
                    .anyRequest().authenticated()
                .and()
                    .formLogin().loginPage("/login").permitAll()
                .and()
                    .logout().permitAll();
        }
    
        /**
         * 在内存中创建了一个用户,该用户的名称为admin,密码为admin,用户角色为USER
         * @param builder
         * @throws Exception
         */
        @Autowired
        public void createUser(AuthenticationManagerBuilder builder) throws Exception {
            builder
                    .inMemoryAuthentication()
                    .withUser("admin")
                    .password("admin")
                    .roles("USER");
        }
    }
    View Code

    3.写自己的Controller

    @Controller
    public class MainController {
    
        @RequestMapping("/")
        public String index(){
            return "index";
        }
    
        @RequestMapping("/index")
        public String index2(){
            return "index";
        }
    
        @RequestMapping("/hello")
        public String hello(){
            return "hello";
        }
    
        @RequestMapping("/login")
        public String login(){
            return "login";
        }
    }
    View Code

    4.启动springboot,访问http://localhost:8080/

    如果没有登录,访问/hello时会自动跳转到/login

    用我们内存中创建的 admin/admin登录

    点击注销,跳转到/login

  • 相关阅读:
    Android开发环境下关于如何导出手机通讯录数据库【Written By KillerLegend】
    Win+R快速打开你的应用程序
    public void onItemClick(AdapterView arg0, View view, int position,long arg3)详解【整理自网络】
    Adapter的getView方法详解
    LayoutInflater中四种类型inflate方法的介绍
    程序员电脑桌面,哪一张触动了你?
    o​r​a​c​l​e​ ​O​D​B​C​配​置 图形界面
    C#String与string大小写的区别
    怎么使用FlashFXP上传网站
    C#操作Excel文件
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/6547051.html
Copyright © 2020-2023  润新知