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

电子商务网站建设预算wordpress 支持html5

电子商务网站建设预算,wordpress 支持html5,腾和企业网站管理系统,wordpress php5.4支持jboss eap 7.0[如果只想查看代码#xff0c;请向下滚动] 动机 在RHQ中#xff0c;我们需要一个安全域#xff0c;该域可用于通过容器管理的安全性来保护REST-api及其Web应用程序。 过去#xff0c;我只是使用经典的DatabaseServerLoginModule对DatabaseServerLoginModule进… jboss eap 7.0 [如果只想查看代码请向下滚动] 动机 在RHQ中我们需要一个安全域该域可用于通过容器管理的安全性来保护REST-api及其Web应用程序。 过去我只是使用经典的DatabaseServerLoginModule对DatabaseServerLoginModule进行身份验证。 现在RHQ还允许将用户放在LDAP目录中而上述模块未涵盖这些目录。 我有两个选择开始 将LDAP登录模块复制到REST的安全域中 将安全域用于已经用于UI和CLI的REST-api 后一种选择当然有利于防止代码重复所以我走了那条路。 并失败了。 我失败了因为RHQ在启动时删除并重新创建了安全域而服务器正在检测到该错误并抱怨从rhq-rest.war引用的安全域突然消失了。 因此下一个尝试不要在启动时重新创建域而只添加/删除ldap-login模块我说的是模块因为实际上我们需要两个。 这也没有按预期工作 基础AS有时会进入需要重新加载的模式并且未应用更改 除去ldap模块后仍会缓存它们中的主体 刷新缓存无效服务器进入需要重新加载的模式 因此我现在要做的是为rest-security-domain实现一个登录模块该模块仅委派给另一个进行身份验证然后在成功时添加角色。 这样rhq-rest.war便具有对该rest-security-domain的固定引用而另一个安全域则可以像以前一样处理。 实作 让我们从standalone.xml文件中的片段开始该片段描述安全域并参数化模块 security-domain nameRHQRESTSecurityDomain cache-typedefaultauthenticationlogin-module codeorg.rhq.enterprise.server.core.jaas.DelegatingLoginModule flagsufficientmodule-option namedelegateTo valueRHQUserSecurityDomain/module-option nameroles valuerest-user//login-module/authentication/security-domain 因此此定义设置了一个安全域RHQRESTSecurityDomain 该域使用我将在稍后描述的DelegatingLoginModule。 传递了两个参数 proxyTo用于验证用户身份的另一个域的名称 角色以逗号分隔的要添加到主体的模块列表并且web.xml的security-constraint部分中需要这些模块 对于代码我没有显示完整清单。 你可以在git中找到它 。 为了使我们的生活更轻松我们不是自己实现所有功能而是扩展已经存在的UsernamePasswordLoginModule并仅覆盖某些方法。 public class DelegatingLoginModule extends UsernamePasswordLoginModule { 首先我们使用传递的选项初始化模块并使用我们委派给的域创建一个新的LoginContext Overridepublic void initialize(Subject subject, CallbackHandler callbackHandler, MapString, ? sharedState,MapString, ? options) {super.initialize(subject, callbackHandler, sharedState, options);/* This is the login context (security domain) we want to delegate to */String delegateTo (String) options.get(delegateTo);/* Now create the context for later use */try {loginContext new LoginContext(delegateTo, new DelegateCallbackHandler());} catch (LoginException e) {log.warn(Initialize failed : e.getMessage());} 有趣的部分是login()方法在该方法中我们获取用户名/密码并存储以供以后使用然后我们尝试登录到委托域如果成功则告诉super我们成功了以便它可以发挥作用。 。 Overridepublic boolean login() throws LoginException {try {// Get the username / password the user entred and save if for later useusernamePassword super.getUsernameAndPassword();// Try to log in via the delegateloginContext.login();// login was success, so we can continueidentity createIdentity(usernamePassword[0]);useFirstPasstrue;// This next flag is important. Without it the principal will not be// propagatedloginOk true; 这里需要loginOk标志以便超类将调用LoginModule.commit()并选择主体和角色。 不将其设置为true将导致成功login()但没有附加主体。 if (debugEnabled) {log.debug(Login ok for usernamePassword[0]);}return true;} catch (Exception e) {if (debugEnabled) {LOG.debug(Login failed for : usernamePassword[0] : e.getMessage());}loginOk false;return false;}} 成功后super将调用以下两种方法来获取主体及其角色 Overrideprotected Principal getIdentity() {return identity;}Overrideprotected Group[] getRoleSets() throws LoginException {SimpleGroup roles new SimpleGroup(Roles);for (String role : rolesList ) {roles.addMember( new SimplePrincipal(role));}Group[] roleSets { roles };return roleSets;} 现在最后一部分是回调处理程序我们委托的其他域将使用该回调处理程序从我们那里获取凭据。 它是经典的JAAS登录回调处理程序。 首先让我感到困惑的一件事是该处理程序在登录期间被调用了几次我认为这是错误的。 但是实际上它被调用的次数与RHQUserSecurityDomain中配置的登录模块的数量相对应。 private class DelegateCallbackHandler implements CallbackHandler {Overridepublic void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {for (Callback cb : callbacks) {if (cb instanceof NameCallback) {NameCallback nc (NameCallback) cb;nc.setName(usernamePassword[0]);}else if (cb instanceof PasswordCallback) {PasswordCallback pc (PasswordCallback) cb;pc.setPassword(usernamePassword[1].toCharArray());}else {throw new UnsupportedCallbackException(cb,Callback cb not supported);}}}} 同样完整的代码在RHQ git仓库中可用。 调试在EAP 6.1 alpha或更高版本中 如果您编写了这样的登录模块但该模块不起作用则需要对其进行调试。 从通常的方法开始以了解我的login()方法是否按预期工作但登录失败。 我添加了打印语句等以发现从未调用过getRoleSets()方法。 但是一切仍然看起来还不错。 我进行了一些谷歌搜索发现了这个不错的Wiki页面 。 可以告诉Web应用执行审核日志记录 jboss-webcontext-rootrest/context-rootsecurity-domainRHQRESTSecurityDomain/security-domaindisable-auditfalse/disable-audit 仅此标志是不够的因为您还需要设置适当的记录器这在Wiki页面上进行了说明。 启用此功能后我看到了类似 16:33:33,918 TRACE [org.jboss.security.audit] (http-/0.0.0.0:7080-1) [Failure]Sourceorg.jboss.as.web.security.JBossWebRealm; principalnull;request[/rest:…. 因此很明显登录模块未设置主体。 查看超类中的代码然后将我带到上面提到的loginOk标志。 现在一切都正确设置了自动日志看起来像 22:48:16,889 TRACE [org.jboss.security.audit] (http-/0.0.0.0:7080-1) [Success]Sourceorg.jboss.as.web.security.JBossWebRealm;StephasRole; principalGenericPrincipal[rhqadmin(rest-user,)]; request[/rest:cookiesnull:headersauthorizationuser-agentcurl/7.29.0,hostlocalhost:7080,accept*/*,][parameters][attributes]; 因此在这里您看到主体rhqadmin已登录并获得了剩余用户分配的角色该角色与web.xml中的security-constraint元素匹配。 进一步查看 我已经将以上内容作为环聊直播进行了介绍 。 不幸的是当我在解释时打字时G 会不时使我静音。 视频播放完后我还有其他问题最终让我重新思考启动阶段以防用户安装了启用了LDAP的RHQ先前版本。 在这种情况下安装程序仍将安装初始的仅基于DB的RHQUserSecurityDomain然后在启动bean中检查a系统设置中是否启用了LDAP以及b登录模块是否实际存在。 如果a匹配并且它们不存在我们将安装它们。 此Bugzilla条目还包含有关整个故事的更多信息。 参考从我们的JCG合作伙伴 Heiko Rupp在“ 一些事情要记住”博客中创建一个委派的登录模块用于JBoss EAP 6.1 。 翻译自: https://www.javacodegeeks.com/2013/05/creating-a-delegating-login-module-for-jboss-eap-6-1.htmljboss eap 7.0
http://www.pierceye.com/news/256112/

相关文章:

  • 长沙协会网站设计专业服务医疗信息化软件公司排名
  • 北京网站制作一般多少钱黑色网站欣赏
  • 广州建设工程造价管理站wordpress获取文章title
  • 免费购物网站源码网站开发的论文引言
  • 商城网站开发需要哪些人员本机建的网站打开却很慢
  • 网站建设哪专业学会python做网站
  • vs怎么添加图片做网站地方门户网站管理系统
  • 三亚做网站的公司科技网站推荐
  • 电商网站运维怎么做自己做网站创业
  • seo有哪些网站集团公司网站 案例
  • 传媒大学附近网站建设公司天津市工程建设公众信息网官网
  • 关于网站建设与维护的参考文献家装设计费用多少钱一平方
  • 网站建设与管理专业概述网站建设报价费用是多少
  • asp医院网站源码破解版北京企业做网站报价
  • 个人做电商网站赚钱吗门业网站模板
  • 企业产品微网站收费吗wordpress移服务器改域名
  • 原创文章网站网站建设团队介绍
  • WordPress建站详细过程安康建设网站
  • 仿视频网站开发wordpress下载文件
  • 专业的个人网站建设哪家建筑施工企业专职安全生产管理员
  • 企业网站模板php全球网站排名前100
  • 1688网站可以做全屏吗有哪些网站是织梦做的
  • vue2.0网站开发做网站没有成本的方法
  • 手机网站和app有什么区别流量对网站排名的影响因素
  • 北京全网营销推广公司网站建设以及seo
  • 免费html网站代码骨科医院网站模板
  • 华强方特网站开发辽宁工程技术大学电子信息网
  • 信誉好的网站建设案例微网站后台录入
  • 网站ui界面设计模板WordPress能连接支付端口吗
  • 网站建设与维护ppt模板下载昆明 网站搭建