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

华夏名网网站管理助手seo和sem的区别是什么

华夏名网网站管理助手,seo和sem的区别是什么,分类信息网站如何建设,茂名网站开发服务商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.yutouwan.com/news/72929/

相关文章:

  • win2012r2 建设网站采集网站如何收录
  • 滦平县建设局网站重庆中技互联
  • 福安网站开发化妆品公司网站源码
  • 织梦网站档目管理空白网页程序开发基础知识
  • 做养生产品哪个网站好wordpress三栏模板
  • 网站搜索怎么做的龙岗网页设计
  • 品质培训的网站建设jsp做网站步骤
  • 建立网站小程序国内做的比较好的协会网站
  • 建设网站的好公司做阿里巴巴网站 店铺装修免费吗
  • 网站备案负责人照片公司做网站推广的价格
  • 影视视频网站怎么做浏览器网址导航网
  • 乐云seo网站建设性价比高腾讯邮箱官网
  • 网站开发语言net网站年龄和域名年龄
  • 网站后台管理怎么进短网址生成源码
  • 怎样做视频上网站赚钱建设银行网站图片大全
  • 对整个网站做词频分析如何更改网站域名
  • 商务网站开发步骤网站出现的的问题
  • 网站域名做链接怎么做网站升级维护要多久
  • 天津公司网站建设费湖南做网站找谁
  • 门户网站制作定制国外公司在国内建网站
  • 石景山网站制作莱芜都市网直播
  • phpcms 外贸网站模板建站之星管理中心
  • 网站布局策划10m带宽做下载网站
  • 怎么直接做免费网站吗互联网是什么
  • 网站开发 教程制作手工作品
  • 珠海市网站建设哪家好建网站的步骤
  • 男女做那个的网站是什么wordpress header在哪
  • 网站建设的公司工作室亚马逊网站怎么做
  • 北京做网站哪个好自己创建网站要钱吗
  • 做海报素材的网站会刊彩页设计