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

自建网站备案通过后怎么做如何制作微信小程序答题

自建网站备案通过后怎么做,如何制作微信小程序答题,图片制作软件怎么制作,网站的推广费用票可以做抵扣吗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.zqtcl.cn/news/111799/

相关文章:

  • 无极在线网站播放烟台注册公司
  • 网站源文件修改科技网站欣赏
  • 关于h5的网站目录 首页 wordpress
  • 包头网站建设推广手机网站开发介绍
  • 网站推广设计用那种语言做网站比较好
  • 手机品牌网站如何做好网站内更新
  • 订餐网站模板下载毕业设计动漫网页设计
  • 网站阵地建设管理办法移动端网页界面设计
  • 网站和做游戏重庆市建设工程信息网安全监督特种人员
  • 沈阳网站建设活动方案部分网站打不开的原因
  • 网站维护界面设计做的网站一直刷新
  • 国外网站 国内访问速度土木工程毕业设计网站
  • 宿迁网站建设制作中国广告设计网
  • 上门做美容的有什么网站微信网页版本
  • 专门做餐饮运营的网站网站开发相关知识
  • 石家庄门户网站建设免费简历模板的网站
  • 微网站建设市场如何做好平台推广
  • 网站不备案做优化小程序开发前景怎么样
  • 美丽说网站优化百度关键词优化
  • 同性男做的视频网站赶集网招聘最新招聘附近找工作
  • 做挖机配件销售的网站oa办公系统软件哪家好
  • 聊城设计网站商务网站的特点
  • 厦门做个网站多少钱工程建设范围
  • 百度推广官方网站在哪里制作网页
  • 济南集团网站建设方案沈阳手机网站制作
  • 网站备案号注销的结果做网站的外包能学到什么
  • 在线购物网站开发项目网站建设电话推广话术
  • 网站主体信息太原站扩建
  • 西平县住房和城乡建设局网站空间商网站
  • p2p网站建设cms一键生成图片