怎么建立一个网站放图片国内网站设计案例欣赏

news/2025/9/23 4:35:06/文章来源:
怎么建立一个网站放图片,国内网站设计案例欣赏,时彩网站开发,大型商家进驻网站开发INI 配置之前章节我们已经接触过一些 INI 配置规则了#xff0c;如果大家使用过如 Spring 之类的 IoC/DI 容器的话#xff0c;Shiro 提供的 INI 配置也是非常类似的#xff0c;即可以理解为是一个 IoC/DI 容器#xff0c;但是区别在于它从一个根对象 securityManager 开始。…INI 配置之前章节我们已经接触过一些 INI 配置规则了如果大家使用过如 Spring 之类的 IoC/DI 容器的话Shiro 提供的 INI 配置也是非常类似的即可以理解为是一个 IoC/DI 容器但是区别在于它从一个根对象 securityManager 开始。根对象 SecurityManager从之前的 Shiro 架构图可以看出Shiro 是从根对象 SecurityManager 进行身份验证和授权的也就是所有操作都是自它开始的这个对象是线程安全且真个应用只需要一个即可因此 Shiro 提供了 SecurityUtils 让我们绑定它为全局的方便后续操作。因为 Shiro 的类都是 POJO 的因此都很容易放到任何 IoC 容器管理。但是和一般的 IoC 容器的区别在于Shiro 从根对象 securityManager 开始导航Shiro 支持的依赖注入public 空参构造器对象的创建、setter 依赖注入。1、纯 Java 代码写法(com.github.zhangkaitao.shiro.chapter4.NonConfigurationCreateTest)DefaultSecurityManager securityManager new DefaultSecurityManager();//设置authenticatorModularRealmAuthenticator authenticator new ModularRealmAuthenticator();authenticator.setAuthenticationStrategy(new AtLeastOneSuccessfulStrategy());securityManager.setAuthenticator(authenticator);//设置authorizerModularRealmAuthorizer authorizer new ModularRealmAuthorizer();authorizer.setPermissionResolver(new WildcardPermissionResolver());securityManager.setAuthorizer(authorizer);//设置RealmDruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/shiro);ds.setUsername(root);ds.setPassword();JdbcRealm jdbcRealm new JdbcRealm();jdbcRealm.setDataSource(ds);jdbcRealm.setPermissionsLookupEnabled(true);securityManager.setRealms(Arrays.asList((Realm) jdbcRealm));//将SecurityManager设置到SecurityUtils 方便全局使用SecurityUtils.setSecurityManager(securityManager);Subject subject SecurityUtils.getSubject();UsernamePasswordToken token new UsernamePasswordToken(zhang, 123);subject.login(token);Assert.assertTrue(subject.isAuthenticated());2、等价的 INI 配置(shiro-config.ini)[main]\#authenticatorauthenticatororg.apache.shiro.authc.pam.ModularRealmAuthenticatorauthenticationStrategyorg.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategyauthenticator.authenticationStrategy$authenticationStrategysecurityManager.authenticator$authenticator\#authorizerauthorizerorg.apache.shiro.authz.ModularRealmAuthorizerpermissionResolverorg.apache.shiro.authz.permission.WildcardPermissionResolverauthorizer.permissionResolver$permissionResolversecurityManager.authorizer$authorizer\#realmdataSourcecom.alibaba.druid.pool.DruidDataSourcedataSource.driverClassNamecom.mysql.jdbc.DriverdataSource.urljdbc:mysql://localhost:3306/shirodataSource.usernameroot\#dataSource.passwordjdbcRealmorg.apache.shiro.realm.jdbc.JdbcRealmjdbcRealm.dataSource$dataSourcejdbcRealm.permissionsLookupEnabledtruesecurityManager.realms$jdbcRealm 即使没接触过 IoC 容器的知识如上配置也是很容易理解的对象名 全限定类名 相对于调用 public 无参构造器创建对象对象名. 属性名 值 相当于调用 setter 方法设置常量值对象名. 属性名 $ 对象引用 相当于调用 setter 方法设置对象引用3、Java 代码(com.github.zhangkaitao.shiro.chapter4.ConfigurationCreateTest)Factory factory new IniSecurityManagerFactory(classpath:shiro-config.ini);org.apache.shiro.mgt.SecurityManager securityManager factory.getInstance();//将SecurityManager设置到SecurityUtils 方便全局使用SecurityUtils.setSecurityManager(securityManager);Subject subject SecurityUtils.getSubject();UsernamePasswordToken token new UsernamePasswordToken(zhang, 123);subject.login(token);Assert.assertTrue(subject.isAuthenticated()); 如上代码是从 Shiro INI 配置中获取相应的 securityManager 实例默认情况先创建一个名字为 securityManager类型为 org.apache.shiro.mgt.DefaultSecurityManager 的默认的 SecurityManager如果想自定义只需要在 ini 配置文件中指定 “securityManagerSecurityManager 实现类” 即可名字必须为 securityManager它是起始的根IniSecurityManagerFactory 是创建 securityManager 的工厂其需要一个 ini 配置文件路径其支持 “classpath:”(类路径)、“file:”(文件系统)、“url:”(网络)三种路径格式默认是文件系统接着获取 SecuriyManager 实例后续步骤和之前的一样。从如上可以看出 Shiro INI 配置方式本身提供了一个简单的 IoC/DI 机制方便在配置文件配置但是是从 securityManager 这个根对象开始导航。INI 配置ini 配置文件类似于 Java 中的 properties(keyvalue)不过提供了将 key/value 分类的特性key 是每个部分不重复即可而不是整个配置文件。如下是 INI 配置分类[main]\#提供了对根对象securityManager及其依赖的配置securityManagerorg.apache.shiro.mgt.DefaultSecurityManager…………securityManager.realms$jdbcRealm[users]\#提供了对用户/密码及其角色的配置用户名密码角色1角色2usernamepassword,role1,role2[roles]\#提供了角色及权限之间关系的配置角色权限1权限2role1permission1,permission2[urls]\#用于web提供了对web url拦截相关的配置url拦截器[参数]拦截器/index.html anon/admin/** authc, roles[admin], perms[permission1][main] 部分提供了对根对象 securityManager 及其依赖对象的配置。创建对象securityManagerorg.apache.shiro.mgt.DefaultSecurityManager其构造器必须是 public 空参构造器通过反射创建相应的实例。常量值 setter 注入dataSource.driverClassNamecom.mysql.jdbc.DriverjdbcRealm.permissionsLookupEnabledtrue 会自动调用 jdbcRealm.setPermissionsLookupEnabled(true)对于这种常量值会自动类型转换。对象引用 setter 注入authenticatororg.apache.shiro.authc.pam.ModularRealmAuthenticatorauthenticationStrategyorg.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategyauthenticator.authenticationStrategy$authenticationStrategysecurityManager.authenticator$authenticator 会自动通过 securityManager.setAuthenticator(authenticator) 注入引用依赖。嵌套属性 setter 注入securityManager.authenticator.authenticationStrategy$authenticationStrategy也支持这种嵌套方式的 setter 注入。byte 数组 setter 注入\#base64 byte[]authenticator.bytesaGVsbG8\#hex byte[]authenticator.bytes0x68656c6c6f 默认需要使用 Base64 进行编码也可以使用 0x 十六进制。Array/Set/List setter 注入authenticator.array1,2,3authenticator.set$jdbcRealm,$jdbcRealm 多个之间通过 “” 分割。Map setter 注入authenticator.map$jdbcRealm:$jdbcRealm,1:1,key:abc即格式是mapkeyvaluekeyvalue可以注入常量及引用值常量的话都看作字符串(即使有泛型也不会自动造型)。实例化 / 注入顺序realmRealm1realmRealm12authenticator.bytesaGVsbG8authenticator.bytes0x68656c6c6f 后边的覆盖前边的注入。测试用例请参考配置文件 shiro-config-main.ini。[users] 部分配置用户名 / 密码及其角色格式“用户名 密码角色 1角色 2”角色部分可省略。如[users]zhang123,role1,role2wang123 密码一般生成其摘要 / 加密存储后续章节介绍。[roles] 部分配置角色及权限之间的关系格式“角色 权限 1权限 2”如[roles]role1user:create,user:updaterole2* 如果只有角色没有对应的权限可以不配 roles具体规则请参考授权章节。[urls] 部分配置 url 及相应的拦截器之间的关系格式“url 拦截器 [参数]拦截器 [参数]如[urls]/admin/** authc, roles[admin], perms[permission1] 具体规则参见 web 相关章节。

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

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

相关文章

松江品划企业网站建设h5制作软件教程

系列简介:这个系列文章讲解线性代数的基础内容,注重学习方法的培养。线性代数课程的一个重要特点(也是难点)是概念众多,而且各概念间有着千丝万缕的联系,对于初学者不易理解的问题我们会不惜笔墨加以解释。在内容上,以…

驾校网站建设费用怎么自己做网站

2019独角兽企业重金招聘Python工程师标准>>> Lori Macvittie 微服务架构是把双刃剑,我们享受它带来的开发速度(development velocity),却也不得不面对服务间通讯带来的复杂性问题。 目前大多数扩展容器化微服务的架构多…

网站速度诊断中国北京出啥大事了

1. 进程与线程有那些区别和联系?   每个进程至少需要一个线程。 进程由两部分构成:进程内核对象,地址空间。线程也由两部分组成:线程内核对象,操作系统用它来对线程实施管理。线程堆栈,用于维…

网站页面设计论文长沙做网站最好的公司

摘要:CSS 过渡效果是一种常见的美观技术,用于在元素状态变化时平滑地过渡。本文将详细介绍 CSS 过渡效果的语法、属性、使用场景以及实现动画效果的步骤。 一、CSS 过渡效果概述 CSS 过渡效果是一种改变元素属性的视觉效果,使得从一个状态到另…

简述网站设计基本流程外贸建站 台州

关于自定义循环队列的实现原理和要点可以参见之前的博文系列:循环队列及C语言实现。这里主要对JAVA下的具体实现方式与原理进行说明。 一、JAVA 中已经自带了 Queue、DQueue、ArrayList、LinkedList 等常用的数据结构,为什么还要单独实现循环队列&#…

淄博 网站设计小鸟云WordPress数据库连接

背景:用nohup运行jar包时候,会产生大量的日志文件,影响磁盘存储,生产环境大概1天有30个g 解决方案: 1、用split分割日志,代码在下面(可以先测试一下),然后加入到定时任务…

常德自助建站seo哈尔滨怎样快速建站

现象: 在CodeFirst时,先写字段与表,创建数据库后,再添加内容 但字段与表会变更,比如改名删除增加等 需求: 当表字段变更时,同时变更数据库,执行数据库迁移 核心命令 Add-Migrat…

什么是 网站收录广州申请公司注册网站

738.单调递增的数字 思路:要求一个数字从第一位往后的大小是单调递增的,先把数字转换成字符串,然后从后往前逐位遍历,如果当前位比前一位小,则前一位--,从当前位往后都应该为9,因此记下当前位置…

html做的网页怎么变成网站手机商城网站建设策划方案范文

汇编概述 汇编需要学习的大致框架如下: 汇编中的符号 1.指令;能够北嘁肷梢惶?2bit机器码,并且能够被cpui识别和执行 2.伪指令:本身不是指令,编译器可以将其替换成若干条指令 3.伪操作:不会生成指令…

网站怎么产品做推广做暧暧网站在线看

Python3判断是否为回文数原题 https://leetcode-cn.com/problems/palindrome-number/ 题目: 不允许用str的方法! 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。…

基于 Vite7 与 Vue3 的 WebOS 后台系统架构实践

在数字办公场景日益复杂的今天,企业级后台系统对交互体验与开发效率提出更高要求。我们采用 Vite7+Vue3+ArcoDesign 技术组合,构建出兼具 MacOS 与 Windows 双风格的 WebOS 管理系统模板,为 PC 端后台开发提供全新解…

网站优化流程网站备案幕

代码随想录算法训练营Day47 | 198.打家劫舍 213.打家劫舍II 337.打家劫舍III LeetCode 198.打家劫舍 题目链接&#xff1a;LeetCode 198.打家劫舍 思路&#xff1a; 当前打劫或者不打劫 class Solution { public:int rob(vector<int>& nums) {vector<int>…

网站建设和推广电话销售话术王也图片高清头像

在前几篇笔记之中都是使用的GPIO输出功能&#xff0c;还没有用过GPIO输入功能&#xff0c;本章就来学习一下如果在Linux下编写GPIO输入驱动程序。正点原子STM32MP1开发板上有三个按键&#xff0c;就使用这些按键来完成GPIO输入驱动程序&#xff0c;同时利用原子操作来对按键值进…

广东网站设计公司电话h5应用

图片来源&#xff1a;https://cn.bing.com本文系生物谷原创编译&#xff0c;欢迎分享&#xff0c;转载须授权&#xff01;研究人员发现了一种直接将皮肤细胞重新编程成用于视觉的光敏杆状感光器的技术。实验室制造的杆状体使失明的老鼠能够在细胞移植到眼睛后探测到光线。这项研…

哪里有做旅游包车的网站智慧新零售系统

用一张图详细的描述DNS寻址的过程&#xff0c;是高级前端进阶的网络篇&#xff1a; 主要是第三步要记仔细就行啦&#xff0c;每一步都要详细的记录下来&#xff0c;总结的脉络如下&#xff1a; 本地DNS缓存本地DNS服务器根域名服务器 顶级域名服务器再次顶级域名服务器权威域名…

滨江区高端网站建设优化推广方案

上周我们学习了如何使用元素创建SVG文本。在实例中我们设置了x和y坐标来定位文本&#xff0c;也尝试了给SVG文本中的每个字符定位。关于元素还有很多内容。在处理SVG文本时&#xff0c;不要局限于x和y属性。元素还有几个可以添加的属性&#xff0c;现在我们开始讨论吧。dx和dy属…

重庆有哪些做网站公司做网站怎么样引流

身为一位产品经理或设计师&#xff0c;原型设计工具是必不可少的工作伙伴。但我们难免会遇到预算有限的时候&#xff0c;这时候&#xff0c;去哪里寻找一款好用的免费原型设计工具呢&#xff1f;以下&#xff0c;小编为大家精心挑选了7款免费的原型工具&#xff0c;并对其进行了…

手表 网站策划常德市建设工程造价信息网

前言 在安装好anaconda之后&#xff0c;系统默认就安装好了一个jupyter notebook的工具&#xff0c;该工具可以在网页端运行&#xff0c;类似这样&#xff1a; 提供了一个按行运行的python运行环境&#xff0c;每一步的输出都可以打印到界面&#xff0c;对于我们初学python&am…

爱站关键词挖掘软件wordpress d压缩

引言 在现代应用程序开发中&#xff0c;确保数据库操作的完整性和一致性至关重要。MySQL 提供了强大的事务管理功能&#xff0c;允许开发者以原子性、一致性、隔离性和持久性&#xff08;ACID&#xff09;的方式处理数据。本文将通过详细的解释和实际示例&#xff0c;带你深入…

网站的购物车怎么做检查网站是否做网站地图

杜教筛 1.概述 杜教筛是用以解决积性函数前缀和的算法。 在学习了莫比乌斯反演之后&#xff0c;杜教筛的过程就会显得简单而自然。 2.基本形式 对于积性函数&#xff0c;我们定义如下函数&#xff1a; 构造积性函数 &#xff0c;使得 显然 &#xff1a; 进一步转化&#xf…