当前位置: 首页 > 知识库问答 >
问题:

定义自定义JAAS上下文时,Websphere Liberty AdminCenter登录不起作用

姚昊焱
2023-03-14

我是WebSphere Liberty概要文件的新手。我正在编写17.0.0.4版本。我试图实现的是为应用程序设置自定义JAAS登录设置。该应用程序在WebSphere8.5上运行良好。

我已经查看了IBM知识中心的许多链接,但得到了JAAS自定义登录的结果,但不是两者一起。在WebSphere 8.5中,我们有层次结构来决定哪个身份验证机制去哪里,但是在Liberty中,如果我设置自定义JAAS身份验证机制,那么我就不能登录到WebSphere Liberty AdminCenter,如果我为server.xml配置,那么它不会对我的应用程序的用户进行身份验证(因为它旨在通过JAAS获得身份验证用户)。

这是我的server.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
 <server description="new server">

     <!-- Enable features -->
     <featureManager>
         <feature>adminCenter-1.0</feature>
         <feature>ssl-1.0</feature>
         <feature>webProfile-7.0</feature>
         <feature>appSecurity-2.0</feature>
     </featureManager>

     <keyStore id="defaultKeyStore" password="WASLiberty" />

     <!-- Admin Center username/password -->
     <!--<quickStartSecurity userName="admin" userPassword="admin123" />-->
     <!-- Define an Administrator and non-Administrator -->
    <basicRegistry id="basic">
       <user name="admin" password="{xor}PjsyNjFubWw=" /> <!-- Encoded version of "admin123" -->
       <user name="nonadmin" password="nonadmin123" />
    </basicRegistry>

    <!-- Assign 'admin' to Administrator -->
    <administrator-role>
       <user>admin</user>
    </administrator-role>

     <!-- JNDI Connection configuration -->
     <dataSource id="MY_CUSTOM_DS" jndiName="jdbc/MY_CUSTOM_DS">
         <jdbcDriver libraryRef="sqlserverjdbc"/>
         <properties.microsoft.sqlserver databaseName="mydb" 
                                         serverName="localhost" portNumber="1433"
                                         user="sa" password="root" />
     </dataSource>

     <!-- JDBC Driver file location -->
     <library id="sqlserverjdbc">
         <file name="${wlp.install.dir}/lib/sqljdbc4.jar"/>
     </library>
     <library id="MyLoginModuleLib">
         <fileset dir="${wlp.install.dir}/lib" includes="custom_auth.jar"/>
     </library> 

     <!-- JAAS Login Module for web application -->
     <jaasLoginModule id="myCustom" 
                      className="com.kana.auth.websphere.MyLoginModule" 
                      controlFlag="REQUIRED" libraryRef="MyLoginModuleLib">
         <options myOption1="value1" myOption2="value2"/>
     </jaasLoginModule>

     <!-- JAAS Login Context -->
     <jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND" 
                  loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token"  />

     <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
     <httpEndpoint id="defaultHttpEndpoint"
                   host="*"
                   httpPort="9080"
                   httpsPort="9443" />

     <webApplication contextRoot="mywebapp" location="mywebapp.war" />

     <!-- Automatically expand WAR files and EAR files -->
     <applicationManager autoExpand="true"/>

     <!-- Enable remote file access -->
     <remoteFileAccess>
        <writeDir>${server.config.dir}</writeDir>
     </remoteFileAccess>
 </server>

有人能指出我哪里出错了吗?

共有2个答案

缪兴腾
2023-03-14

非常感谢Ut Le提供的解决方案。

日志文件中,发现根本原因是ClassNotFound异常。它没有我从< code >中指向的类

濮阳宏硕
2023-03-14

如果您使用的是定制 JAAS 登录模块,那么您的定制 JAAS 登录模块需要忽略管理中心认证并让缺省登录模块来处理它。更好的选择是使用自定义 TAI 来处理应用程序身份验证,并让默认登录模块处理管理中心身份验证。

问候,Ut Le

 类似资料:
  • 我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。 这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚

  • 我正在尝试为AWT Graphics2D实现类似于SWT GC的xor模式绘图。使用内置XORComposite不是一个选项,因为它不像SWT那样实现xor模式绘图。 SWT xor模式绘图通过二进制异或组合源颜色和目标颜色。AWT XORComposite(可通过)使用恒定的xor颜色,该颜色通过二进制异或与源颜色组合,即目标颜色不影响结果颜色。 所以我唯一的选择就是编写我自己的Composit

  • 我在服务器端JBoss EAP 6.2.0 SecurityDomain上有一个CustomLogin模块。此自定义登录模块需要三个CallbackHandler:NameCallback(Java Standard)、PasswordCallback(Java Stanstandard)和一个额外的OtpCallaback(由我自己实现,用于一次性密码)。 我现在想通过JSF2.1 web应用程

  • 请参考一些wordpress post登录插件。我有3页的网站主页,关于正常工作和工作安全,我想显示工作安全页面,如果用户登录有电子邮件/只是虚拟id,我可以生成。找不到此登录模块的插件。带有自定义页面的自定义菜单 使用这个脚本,我可以创建菜单,但不能重定向单独的页面 函数my_wp_nav_menu_args($args=''){ 如果(用户是否已登录){ }否则{ } } 添加过滤器(“wp\

  • 我在我的JSF应用程序中使用容器管理的安全性,因此我有一个低于默认设置的登录页面。 现在在登录页面中,我想在登录按钮旁边添加一个按钮,以允许用户注册。 但我该如何将其转发到我的登记簿。我的注册按钮的xhtml页面?我用以下代码进行了尝试: 我也尝试将表单更改为h: form,以便我可以使用p:命令按钮,但正如我注意到的,我的登录页面不工作,当我单击提交按钮时什么也没有发生。 如何实现我想做的事?

  • 有人能告诉我一些资源吗?这些资源可以指导我如何实现一个定制的Spring Security身份验证,首先在ldap服务器上测试找到的用户的凭据,如果该用户的ldap用户名字段存在,如果无法进行身份验证(可能是因为ldap用户名不存在,或者给定的密码没有对服务器上的用户名进行身份验证),则会尝试根据本地数据库中散列的用户本地密码进行身份验证。 非常感谢。