计划从JBoss迁移到OpenLiberty

1mrurvl1  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(113)

我打算把我的应用程序从jboss迁移到openliberty。在jboss中,我使用DatabaseServerLoginModule完成了身份验证和角色Map,并在standalone.xml文件中进行了配置。我如何使用openliberty实现同样的事情?我使用java作为后台。
另外,我需要帮助在下面-
想知道如何在自由配置下面的代码?在jboss的standalone.xml里面,我可以提供一个类名,这个类名会被自动调用,我可以指定密码和角色查询-

<security-domain name="APPRealm" cache-type="default">
<authentication>
    <login-module code="com.applayer.common.security.AppLoginModule" flag="required">
        <module-option name="dsJndiName" value="java:jboss/datasources/APPDS"/>
        <module-option name="principalsQuery" value="select password from ScUser where loginName=?"/>
        <module-option name="rolesQuery" value="select r.jaasRoleName, 'Roles' from ScJAASRole r where r.jaasRoleTypeName = 'systemUser' OR ? LIKE 'SystemUser'"/>
    </login-module>
</authentication>

字符串

vfwfrxfs

vfwfrxfs1#

只是想留下以下关于如何在openliberty中配置JAAS loginModules的文章供您参考。希望您的DatabaseServerLoginModule能够神奇地工作,或者只需要做一些小的更改就可以工作。
Liberty的身份验证概述https://openliberty.io/docs/latest/authentication.html
分步JAAS配置(本文针对商业Liberty。开放自由的相同步骤)https://www.ibm.com/docs/en/was-liberty/base?topic=liberty-configuring-jaas-custom-login-module
参考https://openliberty.io/docs/latest/reference/config/jaasLoginModule.html

llmtgqce

llmtgqce2#

DatabaseServerLoginModule是一个较旧的JBoss SPI,它看起来像是在最近的版本中从Wildfly中删除的,因为它使用了JDK中不再存在的安全API。
正如Hiroko所链接的,OpenLiberty有一个Authentication options
对于应用程序身份验证,来自Jakarta Security的@DatabaseIdentityStoreDefinition将是一个很好的替代品,下面是一个servlet的示例:

@BasicAuthenticationMechanismDefinition(realmName = "JavaEESec Basic Realm")
@DatabaseIdentityStoreDefinition(
                                 callerQuery = "select password from callertable where name = ?",
                                 groupsQuery = "select group_name from callertable_groups where caller_name = ?",
                                 dataSourceLookup = "java:comp/env/jdbc/derby1fat")

public class DatabaseAuthAliasBasicAuthServlet extends FlexibleBaseServlet {

字符串
对于authorization,可以将用户/组Map到server.xml中的角色:

<application type="war" id="myWebApp" name="myWebApp"
             location="${server.config.dir}/apps/myWebApp.war">
   <application-bnd>
       <security-role name="testing">
           <user name="Bob" />
           <user name="user1" />
           <group name="users" />
       </security-role>
   </application-bnd>
</application>


如果你需要数据库支持的服务器身份验证,我会考虑创建一个自定义用户注册表:https://community.ibm.com/community/user/wasdevops/blogs/hiroko-takamiya1/2021/11/19/configuring-custom-user-registry-liberty
Hiroko有一个git仓库,这里有一个例子:https://github.com/una-tapa/bellscur

相关问题