当前位置: 首页 > news >正文

牙科网站开发网站界面设计的相关指南

牙科网站开发,网站界面设计的相关指南,做五金国际网站哪个好,wordpress 登出函数前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容: 环境准备Spring Security核心概…

前言

Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容:

  1. 环境准备
  2. Spring Security核心概念
  3. 实现基本登录功能
  4. 添加Spring Security的数据库认证

环境准备

在开始写Spring Security之前,我们需要配置好以下环境:

  1. JDK 1.8或以上
  2. Maven 3.0或以上
  3. Spring Boot 2.1.4或以上
  4. IDE(推荐使用IntelliJ IDEA)

在完成以上步骤后,我们可以开始编写代码。

Spring Security核心概念

在使用Spring Security时,需要了解一些核心概念:

  1. Authentication: 安全认证对象,包括用户名、密码以及权限等信息。
  2. Authorization: 安全授权对象,授权某个用户拥有访问某个资源的权限。
  3. Filter: 安全过滤器,过滤请求,并传递继续处理请求的权限。
  4. Provider: 安全认证提供者,获取认证信息,并返回持久化信息等内容。

实现基本登录功能

添加依赖

首先需要添加Spring Security的依赖到项目中:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId><version>${spring-boot.version}</version>
</dependency>

开启Spring Security

在Spring Boot启动类上添加@EnableWebSecurity@Configuration注解,并继承WebSecurityConfigurerAdapter

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {//...
}

添加用户信息

我们需要添加两个用户信息,一个是普通用户,一个是管理员用户。

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {// 普通用户auth.inMemoryAuthentication().withUser("user").password("123456").roles("USER");// 管理员用户auth.inMemoryAuthentication().withUser("admin").password("123456").roles("USER", "ADMIN");
}

配置授权规则

我们需要在配置类中配置哪些路径需要哪些权限才能访问,以及哪些路径不需要进行安全认证。

@Override
protected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/admin").hasAnyRole("ADMIN").antMatchers("/user").hasAnyRole("USER", "ADMIN").anyRequest().authenticated().and().formLogin();
}

其中:

  • /admin路径需要ADMIN权限。
  • /user路径需要USER和ADMIN权限。
  • 其他请求需要通过认证后才能访问。
  • 添加**formLogin()**方法开启默认登录界面。

运行程序

现在我们已经完成了一个简单的登录功能,可以运行程序并使用添加的用户进行登录操作。

添加Spring Security的数据库认证

在上面的例子中,我们将用户信息存储在了内存中,但在实际应用中,用户信息往往是存储在数据库中的。

首先我们要创建一张用户表来存储用户信息。

创建用户表

在数据库中创建一个名为 users 的数据表,表的结构如下:

CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(45) NOT NULL,`password` varchar(255) DEFAULT NULL,`enabled` tinyint(1) DEFAULT '1',PRIMARY KEY (`id`)
);

在该表中,字段含义如下:

  • id:自增主键。
  • username:用户用户名。
  • password:用户密码(使用BCrypt加密)。
  • enabled:标记用户是否启用,1为启用,0为禁用。

添加依赖

我们需要添加Spring Security的数据库认证依赖到项目中:

<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${spring-security.version}</version>
</dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${spring-security.version}</version>
</dependency>

添加配置

我们需要添加以下配置:

  1. 数据源配置
  2. UserDetailsService配置
  3. PasswordEncoder配置
  4. AuthenticationProvider配置
  5. HttpSecurity配置
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Autowiredprivate DataSource dataSource;@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder());}@Beanpublic UserDetailsService userDetailsService() {return new JdbcUserDetailsManager(dataSource);}@Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/admin/**").hasRole("ADMIN").antMatchers("/user/**").hasAnyRole("USER", "ADMIN").anyRequest().authenticated().and().formLogin().loginPage("/login").permitAll().and().logout().permitAll();}@Beanpublic AuthenticationProvider authenticationProvider() {DaoAuthenticationProvider provider = new DaoAuthenticationProvider();provider.setUserDetailsService(userDetailsService());provider.setPasswordEncoder(passwordEncoder());return provider;}
}

在代码中,userDetailsService()方法返回一个JdbcUserDetailsManager对象,该对象用于从数据库中加载用户信息。

PasswordEncoder是用于加密密码的,我们使用了BCryptPasswordEncoder来加密密码。

最后,我们还需要配置一个AuthenticationProvider用于处理认证请求。

添加用户信息到数据库

我们需要向数据库中添加一些测试用的用户信息,可以使用以下代码:

@Autowired
private DataSource dataSource;@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).withUser("user").password(passwordEncoder().encode("password")).roles("USER").and().withUser("admin").password(passwordEncoder().encode("password")).roles("USER", "ADMIN");
}

运行程序

现在我们已经完成了数据库认证功能,可以运行程序并使用添加的用户进行登录操作,Spring Security会从数据库中读取用户信息并进行认证。

总结

Spring Security是一个非常好用的身份认证和授权框架,可以有效保证应用的安全性。本文介绍了如何使用Spring Security实现基本的登录功能和数据库认证,希望这篇文章能够帮助到你。

http://www.yayakq.cn/news/935558/

相关文章:

  • 阜宁哪家专业做网站大宗商品交易平台有哪些
  • 如何解决旅游网站建设问题免费个人主页注册
  • 网站开发使用技术第二版答案1688网站登录
  • 湖南网站建设网站制作台州企业建站程序
  • 郴州网站建设哪家好网站模版购买
  • 海南免费做网站郑州汉狮做网站网络公司
  • 怎么创建网站要钱吗新余网站开发
  • 新蔡县做网站收多少钱如何建立公司网站建议和规则
  • 网站排名查询系统郑州网站及优化
  • 360免费建站教程大网站制作公司
  • 南宁网站建设博信网站搭建费用价格表
  • 制作网站的过程成都定制网站建设地址
  • 南通网站建设培训节点网站
  • 知名网站建设是哪家开发一个app收费
  • 微信建站官网免费注册创业找项目
  • 网站资源规划怎么写地方购物网站盈利模式
  • 哪个市文化和旅游网站做的好网站建设 整改报告
  • asp.net获取网站地址石家庄行业网站
  • 网站建设素材图片wordpress 主题配置
  • 韶关网站建设的公司做网站首页图片
  • 建设旅游网站的市场分析做宠物的网站
  • 穹拓网站建设免费建站的软件
  • vue大型网站开发吗域名网安备案
  • 国外做珠宝裸石的网站广西桂林自驾游最佳线路推荐
  • ui做的好的网站有哪些内容多功能响应式wordpress主题
  • 网站建设项目标书胜利油田局域网主页入口
  • 先进网站建设流程crm
  • 莆田市住房和城乡建设信息网aso优化推广
  • wordpress外贸建站教程专业竞价托管哪家好
  • 创立一个网站得多少钱室内设计效果图分析