如何在springboot中集成springsecurity?

如何在spring boot中集成spring security?针对这个问题,今天小编总结这篇有关spring security集成的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

创新互联建站专注于赤坎网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供赤坎营销型网站建设,赤坎网站制作、赤坎网页设计、赤坎网站官网定制、成都小程序开发服务,打造赤坎网络公司原创品牌,更为您提供赤坎网站排名全网营销落地服务。

1.1 创建mavean工程springboot_security

Pom.xml

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>2.0.6.RELEASEversion>
parent>
<properties>
    <project.build.sourceEncoding>UTF‐8project.build.sourceEncoding>
    <maven.compiler.source>1.8maven.compiler.source>
    <maven.compiler.target>1.8maven.compiler.target>
properties>
<dependencies>
   
   
<dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

   
   
<dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-securityartifactId>
    dependency>


   
   
<dependency>
        <groupId>javax.servletgroupId>
        <artifactId>javax.servlet-apiartifactId>

    dependency>
   
   
<dependency>
        <groupId>javax.servletgroupId>
        <artifactId>jstlartifactId>
    dependency>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-tomcatartifactId>

    dependency>
   
   
<dependency>
        <groupId>org.apache.tomcat.embedgroupId>
        <artifactId>tomcat-embed-jasperartifactId>

    dependency>
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <version>1.18.0version>
    dependency>
dependencies>
<build>
    <finalName>security-springbootfinalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.mavengroupId>
                <artifactId>tomcat7-maven-pluginartifactId>
                <version>2.2version>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>1.8source>
                    <target>1.8target>
                configuration>
            plugin>

            <plugin>
                <artifactId>maven-resources-pluginartifactId>
                <configuration>
                    <encoding>utf-8encoding>
                    <useDefaultDelimiters>trueuseDefaultDelimiters>
                    <resources>
                        <resource>
                            <directory>src/main/resourcesdirectory>
                            <filtering>truefiltering>
                            <includes>
                                <include>**/*include>
                            includes>
                        resource>
                        <resource>
                            <directory>src/main/javadirectory>
                            <includes>
                                <include>**/*.xmlinclude>
                            includes>
                        resource>
                    resources>
                configuration>
            plugin>
        plugins>
    pluginManagement>
build>

 

 

1.2 在resources下添加springboot配置文件,application.properties

server.port=8080

 

1.3 创建springboot启动类

@SpringBootApplication
public classsecurityApplication {
   public static voidmain(String[] args){
        SpringApplication.run(securityApplication.class,args);
    }
}

 

1.4 创建springmvc配置类:

 

@Configuration

public classWebConfigimplementsWebMvcConfigurer {
   @Override
   public voidaddViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("redirect:/login");
    }
}

1.5 在application.properties中配置视图解析器的属性:

spring.mvc.view.prefix=/WEB‐INF/views/
spring.mvc.view.suffix
=.jsp

 

1.6 创建spring security的配置文件

@Configuration
public classWebSecurityConfig extendsWebSecurityConfigurerAdapter {
   //配置用户信息服务
   
@Bean
   publicUserDetailsService userDetailsService() {
        InMemoryUserDetailsManager manager =newInMemoryUserDetailsManager();
        manager.createUser(User.withUsername("zhangsan").password("123").authorities("p1").build());
        manager.createUser(User.withUsername("lisi").password("456").authorities("p2").build());
       returnmanager;
    }
   @Bean
   publicPasswordEncoder passwordEncoder() {
        returnNoOpPasswordEncoder.getInstance();
    }
   //配置安全拦截机制
   
@Override
   protected voidconfigure(HttpSecurity http)throwsException {
        http.authorizeRequests()
                .antMatchers("/r/r1").hasAuthority("p1")
                .antMatchers("/r/r2").hasAuthority("p2")
                .antMatchers("/r/**").authenticated()//所有/r/**的请求必须认证通过
               
.anyRequest().permitAll()//除了/r/**,其它的请求可以访问
               
.and()
                .formLogin()//允许表单登录
                
.successForwardUrl("/login-success");//自定义登录成功的页面地址
   
}
}

 

1.7 创建控制器:LoginController

@RestController
public classLoginController {
   @RequestMapping(value ="/login-success",produces = {"text/plain;charset=UTF-8"})
   publicString loginSuccess(){
       return"登录成功";
    }

   /**
     *
测试资源1
     * @return
    
*/
   
@GetMapping(value ="/r/r1",produces = {"text/plain;charset=UTF-8"})
   publicString r1(){
       return"访问资源1";
    }

   /**
     *
测试资源2
     * @return
    
*/
   
@GetMapping(value ="/r/r2",produces = {"text/plain;charset=UTF-8"})
   publicString r2(){
       return"访问资源2";
    }
}

测试

看完上述内容,你们掌握在spring boot中集成spring security的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


标题名称:如何在springboot中集成springsecurity?
标题路径:http://myzitong.com/article/ihejij.html