Spring Security with Spring Boot 2.0:使用Servlet堆栈的简单身份验证

Spring安全性是一个很好的框架,可节省开发人员的大量时间和精力。 此外,它还具有足够的灵活性,可以自定义并满足您的需求。 随着spring的发展,spring安全性也使得在项目中设置安全性变得更加容易和自举。

Spring Boot 2.0已经存在 ,我们将在我们的安全项目中利用它。 在此项目中,我们旨在创建一个尽可能简单的安全支持项目。 首先,我们将创建一个简单的spring boot 2.0项目。

我们可以使用spring SPRING INITIALIZR应用程序。

该项目的最终结果将是创建一个带有gradle的spring boot 2项目。

buildscript {ext {springBootVersion = '2.0.1.RELEASE'}repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")}
}apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'group = 'com.gkatzioura.security'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8repositories {mavenCentral()
}dependencies {compile('org.springframework.boot:spring-boot-starter-security')compile('org.springframework.boot:spring-boot-starter-web')testCompile('org.springframework.boot:spring-boot-starter-test')testCompile('org.springframework.security:spring-security-test')
}

现在请注意,使用Spring Boot 2有两个堆栈。 Servlet堆栈或WebFlux反应式堆栈。 在本教程中,我们将使用servlet堆栈。 我们将在另一个教程中介绍WebFlux。

让我们添加第一个控制器。

package com.gkatzioura.security.simple.controller;import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldController {@GetMapping("/hello")public ResponseEntity<String> hello(String name) {return new ResponseEntity<>("Hello "+name, HttpStatus.OK);}}

如果尝试访问端点http:// localhost:8080 / hello?name = john,我们将看到一个登录屏幕。 因此,将安全性依赖项包含在我们的项目中会自动保护我们的端点并使用密码配置用户。 为了检索密码,您可以在登录屏幕上检查。 用户名将为“ user”,密码将为spring自动生成的密码。

当然,使用自动生成的密码是不够的,因此我们将提供我们选择的用户名和密码。

在application.yaml文件上设置用户名和密码的方法之一

spring:security:user:name: test-userpassword: test-password

现在,将密码放在文件系统中(尤其是在未加密时)不是一个好习惯,更不要​​说将其上传到版本控制中,因为application.yaml是源文件。 任何有权访问二进制文件的人都可以检索用户名和密码

因此,您可以通过使用环境变量来设置它们,而不是将这些敏感信息放入application.yaml文件中。

所以你的环境变量是

SPRING_SECURITY_USER_NAME=test-user
SPRING_SECURITY_USER_PASSWORD=test-password

综上所述,这是增加项目安全性的最简单,最快的方法。 在下一个博客中,我们将使用WebFlux反应堆进行相同的操作。

翻译自: https://www.javacodegeeks.com/2018/05/spring-security-with-spring-boot-2-0-simple-authentication-using-the-servlet-stack.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一种基于最大似然的语音信号混响时间(reverberation time)估计方法的MATLAB实现

基于最大似然(ML)估计器的盲RT估计-引言 混响效应是室内声学的一个重要现象,它是由声音在封闭空间中经多次反射而产生。描述混响效应强弱的一个重要参数是混响时间(Reverberation time, RT),其定义为当声源停止发声后,残余的声能在室内往复反射,经反射面吸收而强度逐渐减弱…

一种基于最大似然的语音信号混响时间(reverberation time)估计方法的纯C语言实现(姊妹篇)

基于最大似然(ML)估计器的盲RT估计-引言 混响效应是室内声学的一个重要现象,它是由声音在封闭空间中经多次反射而产生。描述混响效应强弱的一个重要参数是混响时间(Reverberation time, RT),其定义为当声源停止发声后,残余的声能在室内往复反射,经反射面吸收而强度逐渐减弱…

java与java ee_CapeDwarf – Java EE上的Google App Engine

java与java ee我有很多爱好。 从早期的Java EE规范一路走来&#xff0c;并用Java EE 7进行了“云”之旅&#xff0c;我很好奇看到新宣布的CapeDwarf项目有什么库存&#xff0c;可以在内部引入Google的平台即服务&#xff0c;提供“ Google App Engine ” 。 到目前为止的故事 …

基于MATLAB的高阶(两个二阶级联构成的四阶以及更高阶)数字图形音频均衡器系数计算(可直接用于DSP实现)

引言 前不久,在数字信号处理中需要对音频信号进行滤波,涉及图形均衡器、参数均衡器的设计,下面这个链接给出了一个图形音频均衡器的例子: https://arm-software.github.io/CMSIS_5/DSP/html/group__GEQ5Band.html 这个示例演示如何使用 Biquad 级联函数构建 5 波段图形均衡…

基于MATLAB的曼彻斯特调制与解调实现

引言 曼彻斯特编码也称为相位编码,是一种同步时钟编码技术。通过电平的高低转换来表示“0”或“1”,每一位的中间有一个跳变的动作,这个动作既作时钟信号,又作数据信号,但因为每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2,其编码效率为50%。常用于局…

记录一次某MFC软件算法逆向之旅

传说中MFC必杀(并不能通用) 对于直接使用SDK而不使用第三方库的程序,我们要定位到程序的“关键代码”并不困难。通常在CreateWindow函数或DialogBoxParam函数下断点,可以直接获得其主界面的窗口过程或对话框过程。但是对于使用了MFC的程序,我们找到的窗口过程或对话框过程是…

mongodb启动不能锁定_使用MongoDB进行乐观锁定重试

mongodb启动不能锁定在我以前的文章中&#xff0c;我谈到了对MongoDB批处理程序采用乐观锁定的好处。 如我之前所写&#xff0c;乐观锁定异常是可恢复的异常&#xff0c;只要我们获取最新的Entity&#xff0c;我们就会对其进行更新并保存。 因为我们使用的是MongoDB&#xff0…

基于Funcode和VS2017的游戏开发

主要实现了两个小游戏,飞机大战和冰火人历险记,首先用Funcode生成地图文件和VS工程,然后进行编程 头文件 CommonAPI.h #ifndef _COMMON_API_H_ #define _COMMON_API_H_ // #include <windows.h>//===============================

VMWare vijava –“用户名或密码不正确”异常的奇怪情况

在我参与的一个项目中&#xff0c;我们使用yavijava &#xff08;这是vijava的一个分支&#xff09;库与托管我们的VM的vCenter进行交互。 vCenter通过其Web服务端点公开了各种API&#xff0c;这些端点是通过HTTP调用的。 yavijava库具有必要的钩子&#xff0c;允许开发人员在客…

【OFDM系列4】OFDM信号多径信道模型基础知识

多径信道模型(Multipath Channel Scenario) 信道脉冲响应(Channel Impulse Response, CIR) 信道的复基带脉冲响应如下所示 h ( τ ; t ) = ∑ l = 1 L a l ( t

kie-api_KIE-WB / JBPM控制台Ng –配置

kie-api大家好&#xff0c;这是我上一篇文章中有关如何使用jBPM Console的后续文章 。 这篇文章的主要思想是描述为了在您自己的公司中使用jBPM Console NG而需要进行的一些最常见的配置。 但是在讨论技术细节之前&#xff0c;我们将介绍KIE Workbench&#xff08;KIE-WB&#…

【OFDM系列5】单输入单输出OFDM(SISO-OFDM)多径信道迫零(ZF)和最小均方误差(MMSE)均衡器原理和公式推导

OFDM单输入单输出(SISO)迫零(ZF)均衡器 在去除CP之后,第k个子载波上的信号的FFT给出如下 Y k = H k D k + W k ⋯ ( 1 ) Y_k=H_k D_k+W_k\cdots(1)

如何在Tomcat中设置JNDI数据库连接池-Spring教程示例

在Spring和Tomcat中设置JNDI数据库连接池非常容易。 Tomcat服务器文档提供了有关如何在Tomcat 5、6或7中设置连接池的足够信息。在这里&#xff0c;我们将结合使用Tomcat 7和Spring框架在Tomcat服务器中创建连接池并在Spring中使用JNDI代码访问它们。 在上一篇文章中&#xff0…

win10任务栏透明+变窄+免安装

透明设置 在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced中新建DWORD32位值TaskbarAcrylicOpacity&#xff0c;设置数值为0 重启资源管理器explorer.exe即可 变窄 下载7Taskbar软件7tt_setup.exe&#xff0c;直接解压&#xff0c;对于本…

java vm_Java VM –提防YoungGen空间

java vm正如您从我们以前的面向性能的文章中可能已经看到的那样&#xff0c;运行良好的JVM是实现最佳应用程序性能和稳定性的最重要目标之一。 这样的健康评估通常仅关注主要收集的频率&#xff08;避免&#xff09;或检测内存泄漏的存在。 年轻一代空间或短寿命物体的大小和足…

Java生产监控的阴暗面

自动化的工作流程是在敏捷环境中交付高质量产品的新金标准。 不幸的是&#xff0c;不断变化会带来不断的风险。 输入“可观察性”&#xff0c;这是一种度量&#xff0c;可以从系统的外部输出中推断出系统的内部状态。 知道应用程序如何在生产中运行的能力。 在本节中&#xff…

MATLAB库函数upfirdn(分数倍采样率变换)的C语言实现【姊妹篇2纯C语言实现】

upfirdn原理 yout = upfirdn(xin,h,p,q) upfirdn的功能在MATLAB官方帮助文档中说得很清楚 通过插零实现 p p p倍上采样对上采样之后的信号用给定的 h h h(通常为低通滤波器)进行滤波对滤波结果进行

adf4350配置_配置MySQL以进行ADF开发

adf4350配置大家好。 今天&#xff0c;我将向您展示如何为Oracle ADF开发配置MySQL数据库。 恕我直言&#xff0c;当您将ADF与其他数据库而不是Oracle DB一起使用时&#xff0c;您将无法使用Oracle ADF的全部功能&#xff0c;有时您会发现自己在寻找解决方法&#xff0c;以实现…

模拟调频信号FM解调的matlab和C语言实现【姊妹篇2纯C语言实现】

本文所需的FM已调信号、原始音频、包络检波法解调后的音频、差分相位法解调后的音频,可通过以下链接进行下载。其中,FM已调信号文件较大共有两百多兆,故截取其部分上传,若有需要完整信号的请留言! FM调制解调音频文件.rar 已调信号:采样率为 F s = 5 m H z Fs=5mHz Fs=

如何在Java中使用重复项查找整数数组中的K个缺失数字?

自从我讨论任何编码或算法面试问题以来已经有很长时间了&#xff0c;因此我想重新考虑一种最流行的基于数组的编码问题&#xff0c;即在给定数组中查找缺失的数字。 在进行编程工作面试之前&#xff0c;您可能已经听说过或看到过此问题&#xff0c;但是面试官通常会使用许多不同…