小工具      在线工具  汉语词典  css  js  c++  java

Spring Security 官方demo学习

Java 额外说明

收录于:43天前

Spring Security提供了一种简单、灵活且强大的机制来保护Web应用程序。借助一系列Servlet Filter能够控制对Web资源的访问,包括MVC控制器。借助于Java配置模型,能够简洁的声明Web安全性功能。
当认证用户是,可以使用基于内存用户库、关系型数据库、LDAP目录服务器来配置认证功能。

1.查看Spring Security官方文档

https://spring.io/projects/spring-security#learn

2. 将上面的文档界面一直滚动到最后,可以看到如下界面。指南将教您创建 Spring Security 演示。

https://spring.io/projects/spring-security#learn

3. 点击Securing a Web Application,进入Guides的具体创建步骤界面,如下:

https://spring.io/guides/gs/secure-web/

4. Demo验证

在浏览器中输入http://localhost:8080,然后点击这里

会跳转到登录页面,http://localhost:8080/login

登录成功页面:http://localhost:8080/你好

当您注销后直接在浏览器中进入hello界面时,会自动拦截到登录页面。

5、主要逻辑代码片段

package com.example.securingweb;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
	@Override
	protected void configure(HttpSecurity http) throws Exception {

		/**
		 *  @auther: TF12778
		 *  @date:   2020/6/10 10:41
		 *  @description:
		 *  1. 允许访问路径"/"或者"/home",而不需要登录。
		 *  除过"/"或者"/home",其他页面都需要登录。
		 *  2. 表单登录,路径是"/login",允许所有用户都可以发起登录操作
		 *  3. 允许所有用户都可以退出登录
		 */
		http
			.authorizeRequests()
				.antMatchers("/", "/home").permitAll() // 假如去掉这行的话,所有页面都需要登录
				.anyRequest().authenticated()
				.and()
			.formLogin()
				.loginPage("/login")
				.permitAll()
				.and()
			.logout()
				.permitAll();
	}

	@Bean
	@Override
	public UserDetailsService userDetailsService() {
		
		/**
		 *  @auther: TF12778
		 *  @date:   2020/6/10 10:45
		 *  @description:
		 *  登录的帐号:"user"和密码:"password"
		 */
		UserDetails user =
			 User.withDefaultPasswordEncoder()
				.username("user")
				.password("password")
				.roles("USER")
				.build();

		return new InMemoryUserDetailsManager(user);
	}
}

. . .

相关推荐

额外说明

解决 org.apache.ibatis.binding.BindingException: Invalid bond statements (not find) 的问题

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题,即在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,简单说,就

额外说明

校验正则表达式工具

在线正则表达式-BeJSON.com  

额外说明

【错误报告:字符串类型转换int】java.lang.NumberFormatException: 对于输入字符串:

算法学习错误记录 今天在写力扣题目加一时,出现错误,string转int出错, 一般有三种情况, 1.字符串前后有空格,使用str.trim()去前后 2.字符串中间有空格, 3.输入数大于int类型长度,int max=2147483647 int m

额外说明

被研发气哭的00后测试小姐姐是怎样绝地反击翻盘的?

公司年后新来了一个00后的小姐姐,双非本科还不是计算机出身的,主管看着她态度好,积极好学就留下来,给的5k的实习工资(杭州) 这小姐姐也是好学,自己找资料一边上班一边自学,终于在一个月后正式测出10个bug,兴致冲冲拿着测试报告的跑到研发那边,然后迎接她

额外说明

Java基础——异常处理案例

案例: 键盘输入一个合格的价格为止,要求价格大于0。 import java.util.Scanner; /** * 异常处理学习案例 * 案例:需要输入一个合格的价格为止,要求价格大于0 */ public class Test01 {

额外说明

Unity2018版本串口通讯设置与代码

最近项目要做一个动感单车类似的项目,就研究了一下新版本的串口通信,在5.x版本需要设置这个设置成2.0然后才能引用命名空间using System.IO.Ports;,在新的版本中只需要设置成上面的形式然后创建脚本就可以引用了,有的同学就问了,为什么我创

额外说明

设计模式简介

文章目录 接口的定义; 设计模式 三大类型 接口的定义; 接口: 若干抽象方法的集合。 作用: 1- 限制实现接口的 类, 必须按照接口 给定的 调用方式 实现这些方法; 2- 对高层模块隐藏了类的内部实现; 统一 所有调用某一方法的 方式, 即统一调用

额外说明

实际项目中使用gorm-gen来生成实体类

一、为什么要使用gorm-gen来生成实体类和查询 1、根据gorm官网地址,正常的写法是先写数据模型,然后由数据模型自动同步生成到数据库中,但是这样的工作量会比较大,对于写后端的人来说都熟悉sql语句,正常来说都是先自己手动创建表,利用工具将表字段同步

额外说明

不用担心JDK17收费了,Oracle 推出 JDK 8 的升级替代品

在10月18日,Oracle官方宣布推出Java SE Subscription Enterprise Performance Pack (Enterprise Performance Pack),并宣称该企业级性能包为JDK 8用户提供了在JDK 8和

额外说明

Pytorch深度学习实战1-6:图解牛顿迭代法,牛顿不止力学三定律

目录 1 引例 2 牛顿迭代算法求根 3 牛顿迭代优化 4 代码实战:Logistic回归 1 引例 给定如图所示的某个函数,如何计算函数零点 x 0 x_0 x0​? 在数学上我们如何处理这个问题? 最简单的办法是解方程 f ( x ) = 0 f(x

ads via 小工具