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

被他人备案后做违法网站做网站哪家公司便宜

被他人备案后做违法网站,做网站哪家公司便宜,网上国网app推广方案,东莞石龙网站建设莞网站制作前言 「作者主页」#xff1a;雪碧有白泡泡 「个人网站」#xff1a;雪碧的个人网站 「推荐专栏」#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄#xff0c;vue成神之路★ ★ 解决算法#xff0c;一个专栏就够了★ ★ 架…前言 「作者主页」雪碧有白泡泡 「个人网站」雪碧的个人网站 「推荐专栏」 ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄vue成神之路★ ★ 解决算法一个专栏就够了★ ★ 架构咱们从0说★ ★ 数据流通的精妙之道★ ★后端进阶之路★ 文章目录 前言引言1. 定义用户使用内存方式定义用户使用数据库方式定义用户 2. 定义角色创建角色并将其与用户关联解释如何使用角色来组织和控制权限 3. 定义权限4. 访问规则使用Ant风格的路径匹配规则使用表达式语言进行更复杂的访问规则定义 小结 引言 继上篇后端进阶之路——深入理解Spring Security配置二 1. 定义用户 使用内存方式定义用户 在内存中定义用户是一种简单的方法适用于开发和测试环境。我们可以在Spring Security的配置类中使用InMemoryUserDetailsManager来定义用户。下面是一个示例 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser(user).password({noop}password) // 使用 {noop} 前缀表示密码不加密.roles(USER);}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().anyRequest().authenticated().and().formLogin();} }上述示例中使用withUser方法定义了一个用户名为user密码为password角色为USER的用户。注意密码的前缀{noop}表示密码不加密这只适用于开发和测试环境。 使用数据库方式定义用户 在实际生产环境中通常会将用户信息存储在数据库中。使用数据库方式定义用户需要进行以下步骤 创建数据库表格来存储用户信息例如表格名为users包含列username、“password和role”。配置Spring Security以连接到数据库并使用数据库中的用户信息进行认证和授权。 下面是一个使用数据库方式定义用户的示例 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Autowiredprivate DataSource dataSource;Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(SELECT username, password, enabled FROM users WHERE username?).authoritiesByUsernameQuery(SELECT username, role FROM users WHERE username?);}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().anyRequest().authenticated().and().formLogin();} }上述示例中通过dataSource注入了数据源然后使用jdbcAuthentication配置了基于数据库的认证和授权。.usersByUsernameQuery()方法指定了查询用户名、密码和启用状态的SQL语句.authoritiesByUsernameQuery()方法指定了查询用户名和角色的SQL语句。 2. 定义角色 在Spring Security中可以使用角色来组织和控制权限。角色是一组权限的集合可以通过将角色与用户关联来授予用户相应的权限。 以下是在Spring Security中定义角色并将其与用户关联的示例代码 创建角色并将其与用户关联 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Autowiredprivate DataSource dataSource;Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(SELECT username, password, enabled FROM users WHERE username?).authoritiesByUsernameQuery(SELECT username, role FROM users WHERE username?);}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers(/admin/**).hasRole(ADMIN) // 需要ADMIN角色才能访问/admin/**路径.anyRequest().authenticated().and().formLogin();} }在上述示例中.antMatchers(/admin/**).hasRole(ADMIN)指定了只有拥有ADMIN角色的用户才能访问/admin/**路径。这样我们可以根据不同的角色来限制用户对某些资源的访问权限。 解释如何使用角色来组织和控制权限 在Spring Security中可以使用角色来定义访问控制规则并使用这些规则来保护应用程序的不同部分。通过为用户分配不同的角色可以实现对不同用户的权限控制。 以下是一个使用角色进行权限控制的示例代码 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Autowiredprivate DataSource dataSource;Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(SELECT username, password, enabled FROM users WHERE username?).authoritiesByUsernameQuery(SELECT username, role FROM users WHERE username?);}Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers(/admin/**).hasRole(ADMIN) // 需要ADMIN角色才能访问/admin/**路径.antMatchers(/user/**).hasRole(USER) // 需要USER角色才能访问/user/**路径.anyRequest().authenticated().and().formLogin();} }上述示例中使用.antMatchers(/admin/**).hasRole(ADMIN)和.antMatchers(/user/**).hasRole(USER)定义了不同路径需要不同角色的访问权限。只有拥有相应角色的用户才能访问对应的路径。 3. 定义权限 权限是指在系统中对特定资源或操作进行访问控制的能力。它是用于确保只有经过授权的用户或角色才能执行某些敏感操作或访问某些受限资源的机制。权限的定义和管理对于确保系统的安全性和保护重要数据非常重要。 在Spring Security中我们可以使用PreAuthorize、PostAuthorize和Secured等注解来定义权限。这些注解可以放置在方法上用于限制只有具有特定权限的用户才能调用该方法。 下面是一个示例演示了如何在Spring Security中定义权限 首先确保你已经添加了Spring Security的依赖到你的项目中。 !-- pom.xml -- dependencies...dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency... /dependencies接下来创建一个自定义的权限验证类。 import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Component;Component public class MyAuthorization {PreAuthorize(hasRole(ROLE_ADMIN))public void adminOnly() {// 只有具有ROLE_ADMIN角色的用户才能调用此方法}PreAuthorize(hasAuthority(WRITE_PERMISSION))public void writeAccess() {// 只有具有WRITE_PERMISSION权限的用户才能调用此方法}}在上述代码中MyAuthorization类包含了两个方法adminOnly()和writeAccess()。这两个方法都使用了PreAuthorize注解来定义权限。 hasRole(ROLE_ADMIN)表示只有具有ROLE_ADMIN角色的用户才能调用adminOnly()方法。 hasAuthority(WRITE_PERMISSION)表示只有具有WRITE_PERMISSION权限的用户才能调用writeAccess()方法。 然后在你的业务逻辑中可以通过依赖注入的方式使用MyAuthorization类并调用相应的方法。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class MyService {private final MyAuthorization myAuthorization;Autowiredpublic MyService(MyAuthorization myAuthorization) {this.myAuthorization myAuthorization;}public void doSomething() {myAuthorization.adminOnly(); // 调用需要admin权限的方法myAuthorization.writeAccess(); // 调用需要writeAccess权限的方法}}在上述代码中MyService类依赖注入了MyAuthorization类并在doSomething()方法中调用了其中的两个方法。 4. 访问规则 当使用Spring Security进行访问控制时可以通过Ant风格的路径匹配规则和表达式语言来定义更复杂的访问规则。下面是一些示例代码片段用于说明如何使用这些规则 使用Ant风格的路径匹配规则 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers(/admin/**).hasRole(ADMIN).antMatchers(/user/**).hasAnyRole(USER, ADMIN).anyRequest().authenticated().and().formLogin().and().httpBasic();} }在上述代码中我们使用authorizeRequests()方法来配置路径的访问规则。.antMatchers()方法用于指定要匹配的路径模式并使用hasRole()或hasAnyRole()方法指定需要具有的角色。在这个例子中如果请求的路径以/admin/开头则用户需要具有ADMIN角色。 使用表达式语言进行更复杂的访问规则定义 Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().expressionHandler(expressionHandler()).antMatchers(/admin/**).access(hasRole(ADMIN) or hasIpAddress(127.0.0.1)).anyRequest().authenticated().and().formLogin().and().httpBasic();}Beanpublic DefaultWebSecurityExpressionHandler expressionHandler() {DefaultWebSecurityExpressionHandler expressionHandler new DefaultWebSecurityExpressionHandler();expressionHandler.setRoleHierarchy(roleHierarchy());return expressionHandler;}Beanpublic RoleHierarchy roleHierarchy() {RoleHierarchyImpl roleHierarchy new RoleHierarchyImpl();roleHierarchy.setHierarchy(ROLE_ADMIN ROLE_USER);return roleHierarchy;} }在上述代码中我们使用.access()方法来定义更复杂的访问规则。这里我们使用表达式语言可以通过hasRole()和hasIpAddress()等方法来判断用户是否有权限访问路径。在这个例子中如果请求的路径以/admin/“开头并且用户具有ADMIN角色或者IP地址为127.0.0.1”则允许访问。 另外我们还使用DefaultWebSecurityExpressionHandler和RoleHierarchyImpl来配置角色层次关系。在这个例子中ROLE_ADMIN角色被认为是ROLE_USER角色的父角色因此具有ROLE_ADMIN角色的用户也将被授予ROLE_USER角色的权限。 小结 通过定义用户、角色、权限和访问规则 可以在SpringSecurity中实现灵活的访问控制和权限管理。可以使用内存方式或数据库方式定义用户设置用户名、密码和角色等信息。角色可以用来组织和控制权限可以将一组权限赋予特定角色并将角色分配给用户。权限是指用户可以执行的特定操作或访问的资源可以细化到每个功能或数据级别。可以使用Ant风格的路径匹配规则或表达式语言编写更复杂的访问规则以限制用户对特定路径或功能的访问权限。 通过定义这些元素可以确保系统的安全性和可靠性。
http://www.hkea.cn/news/14304056/

相关文章:

  • 上海做网站找哪个公司好学校网站设计实验报告
  • 自助网站免费wordpress 网站工具栏
  • 网站域名地址查询河北邯郸最新消息
  • 南宁企业网站制作搞笑图片在线制作生成器
  • 中国农村建设投资有限公司网站首页360免费建站模板
  • 重庆彼客的网站是谁家做的抖音推广平台入口
  • 企业网站建设论文5000做二手网站有哪些
  • 网站有多少个网站的建设的项目介绍怎么写
  • 丽水网站开发wordpress漫画商城
  • 长春建站网站南通城乡住房建设厅网站首页
  • 做网站编程装饰工程有限公司起名大全
  • 保定建设信息网站高校学生红色网站建设
  • 网站建设 分析网站构成三要素
  • 网站开发团队公司模式怎么自己开发网址
  • 淄博网站公司南京做企业号微网站营销
  • WordPress做大站北京公司摇号需要哪些资格条件
  • 沈阳企业定制网站建设上海高端网页设计公司
  • 做网站登录页面的论文常用网站字体
  • 自己做免费手机网站吗深圳航空人工服务电话
  • 一流的铁岭做网站公司做盈利的设计素材网站有前途
  • 做任务的电脑网站网站防止盗图
  • 吉林建设网站全球中文网站排名
  • 上海网站建设红旗韶关网站建设公司
  • 网站内容及内链建设咖啡设计网站
  • 太原网站建设如何把网站上传到网上
  • 企业营销型网站策划做企业网站的步骤
  • 网站建设费税率是多少面试drupal网站开发岗位
  • 家具玻璃镜定做东莞网站建设厦门模板网站
  • WordPress住小程序seo sem是什么职位
  • 新潮狼网站建设网站自适应