专栏首页信息安全小学生第一个 SpringSecurity 应用

第一个 SpringSecurity 应用

第一个 SpringSecurity 应用

Spring Security 官方介绍 https://spring.io/projects/spring-security#learn Spring Security 目标是解决 “你是谁?”、“你能做什么?”两个问题。

实现步骤

1. 创建目录结构

|____spring-security-learn-1
| |____build.gradle
| |____src
| | |____main
| | | |____java
| | | |____resources

2. 创建文件 build.gradle

重点引入 spring-boot-starter-security 依赖项,完整的 gradle 配置如下:

plugins {
    id 'java'
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

group 'net.txt100.learn'
version '1.0'

sourceCompatibility = 1.8

apply plugin: 'application'
mainClassName = 'net.txt100.learn.springsecurity.base.case1.Case1Application'

repositories {
    maven {
        url "http://maven.aliyun.com/nexus/content/groups/public"
    }
    mavenCentral()
}

dependencyManagement {
    imports {
        mavenBom 'org.springframework.boot:spring-boot-dependencies:2.1.6.RELEASE'
    }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    // spring boot
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-security'
}

3. 创建一个资源服务 UserController.java

package net.txt100.learn.springsecurity.base.case1.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Title: UserController
 * Package: net.txt100.learn.springsecurity.base.case1.controller
 * Creation date: 2019-08-08
 * Description:
 *
 * @author <a href="me@tonglei.win">Tonglei</a>
 * @since 1.0
 */
@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/all")
    public String getAllUsers() {
        return "这是一个被保护的资源 /user/all";
    }
}

4. 创建 spring-boot 启动类 Case1Application.java

package net.txt100.learn.springsecurity.base.case1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author <a href="mailto:me@tonglei.win">Tonglei</a>
 * @since 1.0
 */
@SpringBootApplication
public class Case1Application {
    public static void main(String[] args) {
        SpringApplication.run(Case1Application.class, args);
    }
}

5. 编译及执行

打开命令行,进入工程根目录,执行编译命令

gradle compileJava

执行运行命令

gradle run

访问 http://localhost:8080/user/all

此时浏览器显示如下

用户名填入 user

密码每次启动时自动生成,可以在日志中找到

... 2019-08-08 15:13:10.028 INFO 824 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : Using generated security password: 8c20d4a7-7507-41ce-a271-a75fbe0c7dee

认证通过后,可看到 User 控制器返回内容

总结

最简单的 spring-security 项目只需要在项目依赖中增加 spring-boot-starter-security 即可。

默认情况下,该项目的所有资源地址均需认证成功后才能访问。默认账户 user,密码可从日志中找到。

如果想取消默认的安全设置,需要在配置文件中增加以下内容:

security.basic.enabled = false # 默认禁用 spring-security 安全配置

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring security笔记3/4: 自定义登录页面

    重命名 Case2Application.java 为 Case3Application.java

    tonglei0429
  • 理解OAuth2.0协议-基础篇

    OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内...

    tonglei0429
  • Egg.js 笔记二 目录结构和内置对象

    Application 是全局应用对象,在一个应用中,只会实例化一个,它继承自 Koa.Application,在它上面我们可以挂载一些全局的方法和对象。我们可...

    tonglei0429
  • springboot(二):web综合开发

    上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门、了解实践Spring boot特性;本篇文章接着上篇内容继...

    纯洁的微笑
  • SpringBoot ( 二 ) :web 综合开发

    spring boot web开发非常的简单,其中包括常用的json输出、filters、property、log等。

    前朝楚水
  • SpringBoot(二)Web整合开发

    Spring Boot (二):Web 综合开发 本篇文章接着上篇内容继续为大家介绍spring boot的其它特性(有些未必是spring boot体系桟的功...

    用户1195962
  • Java之抽象

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是...

    用户5224393
  • SpringBoot之部署以及Maven打包切换环境

    前言:之前一直用的 Java-jar 运行的,但是部署的时候得停止服务 通过端口kill 掉的,最近在推酷上发现一个安全关闭springboot的博客 ,所以...

    王念博客
  • 前端学习笔记之CSS选择器

        id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)

    Jetpropelledsnake21
  • Spring Boot入门及整合mybatis

    Spring Boot入门 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券