Hi,Please take a look at this:
Component-managed authentication
In the case of component-managed authentication, the application component
accessing the resource or adapter is responsible for programmatically supplying
the credentials, or WebSphere Application Server can supply a default
component-managed authentication alias, if available.
After obtaining the connection factory for the resource from Java Naming and
Directory Interface (JNDI), the application component creates a connection to the
resource using the create method on the connection factory supplying the
credentials. If no credentials are supplied when creating a connection and a
component-managed authentication alias has been specified on the Java 2
Connector (J2C) connection factory, the credentials from the authentication alias
are used. Assuming the credentials are valid, future requests using the same
connection make use of the same credentials.
Note: Component-managed authentication is specified by setting the
res-auth entry in the deployment descriptor for the resource reference to
Application.
Creating a sample EIS resource adapter is beyond the scope of this book. You
can find sample code for looking up a resource adapter connection factory and
connecting to the resource in Example 17-1. The code assumes that a Resource
Reference has been defined and named EISResourceName and maps to a J2EE
Resource Adapter connection factory.
The basic steps are as follows:
1. Get initial JNDI context.
2. Look up the connection factory for the resource adapter.
3. Create a ConnectionSpec object holding credentials.
4. Obtain the Connection Object from the Connection Factory by supplying the
ConnectionSpec object.
After a connection is obtained using the credentials specified in the
ConnectionSpec object, all future interactions, through interaction objects, carry
the user credentials and the EIS fulfills the request or denies it based on the
Authorization properties in EIS.
Example 17-1 Get resource connection
try
{
Context ic = new InitialContext();
ConnectionFactory cf = (ConnectionFactory)
ic.lookup("java:comp/env/EISResourceName");
try {
//Use the following if res-auth=Application
//This is for Component Managed Authentication with
//no JAAS Authentication Alias set on the Connection Factory
WSConnectionSpecImpl conSpec = new WSConnectionSpecImpl();
conSpec.setUserName("username"); // replace the username with the
value
conSpec.setPassword("password"); // replace the password with the
value
Connection con = cf.getConnection(conSpec);
//Use the following if res-auth=Container
//This is for Container Managed Authentication
//Connection con = cf.getConnection();
} catch (ResourceException re) {
System.out.println(re.toString());
}
}
catch(NamingException ne) {
System.out.println(ne.toString());
}
Container-managed authentication
Container-managed authentication removes the requirement of the component
to programmatically supply the credentials for accessing the EIS. Instead of
calling the getConnection() method with a ConnectionSpec object,
getConnection() is called with no arguments. See Example 17-1 for sample code.
The authentication credentials used for connecting to the EIS are then supplied
by the Web container, the application container, or the Enterprise JavaBeans
(EJB) container, depending on where the resource is accessed from.
WebSphere Application Server V6.1 supports the Java Authentication and
Authorization Service (JAAS) specification. Therefore, you can map the
credentials for accessing the EIS from any of the configured JAAS Authentication
login modules, including any custom JAAS Authentication login module.
When defining the Resource Reference in the deployment descriptor, either Web
application deployment descriptor or EJB deployment descriptor, after the
Authentication is set to Container and the WebSphere Bindings JNDI Name has
been entered, three options become available for the JAAS Login Configuration.
The three options are explained in the following sections.
Container-managed authentication (deprecated)
This option uses the container-managed authentication settings that are defined
for the resource’s connection factory. The credentials can come from a JAAS
Authentication Alias when using the DefaultPrincipalMapping
Mapping-configuration alias setting, or be mapped from another JAAS
Authentication login module.
Note: Selecting this option and specifying DefaultPrincipalMapping and
selecting a JAAS Authentication Alias when defining the resource’s
Connection Factory provides the same functionality as WebSphere
Application Server V5.
We no longer recommend this method. We recommend you to use the Use
Default Method option, which is discussed next.
Use Default Method
The Use Default Method setting behaves very similarly to container-managed
authentication using the DefaultPrincipalMapping option. A JAAS authentication
alias is linked to the Connection Factory and all container-managed
authentication requests using the resource reference use the credentials from
the alias when connecting to the EIS. The difference is that the linking from the
JAAS authentication alias to Connection Factory is done at the resource
reference level within the application. This alleviates a security exposure by
limiting the scope of the credentials to the application defining the resource
reference. All other applications would have to supply their own credentials when
accessing the Connection Factory directly from JNDI. We recommend this
method for mapping JAAS authentication aliases to Connection Factories.
Use Custom Login Configuration
This option allows you to use any defined JAAS authentication module. Enter the
name of the JAAS authentication modules as it is defined in Security → Secure
administration, applications, and infrastructure → Java Authentication and
Authorization Service → Application logins and specify any parameters
required. When a connection to the resource is required, the specified module is
used to obtain the credentials that are passed to the connector.
---------------------------------中文翻译----------------------
你好,请大家看看这个:
组件管理认证
在组件管理的认证情况下,应用程序组件
访问资源或适配器负责提供编程
的全权证书,或WebSphere应用服务器可以提供一个默认
组件管理的认证别名,如果有的话。
在取得从Java命名和资源的连接工厂
目录接口(JNDI),应用程序组件创建一个连接
资源使用连接工厂创建方法供应
凭据。 如果没有提供凭据当创建一个连接和
组件管理的认证别名已被指定在Java 2
连接器(的J2C)连接工厂,从身份验证的凭据别名
被使用。 假设凭证有效,以后的请求使用相同的
使连接使用相同的凭据。
注:组件管理的认证是通过设置指定
水库- auth的条目在部署描述符参考资源
应用。
创建示例EIS资源适配器超出了本书的范围。 你
查找可以找到一个资源适配器连接工厂和示例代码
连接到资源为例17-1。 该代码假定一个资源
参考已定义和命名EISResourceName并映射到一个J2EE
资源适配器连接工厂。
基本步骤如下:
1。 获得初始JNDI上下文。
2。 查找该资源适配器的连接工厂。
3。 创建一个ConnectionSpec对象持有的凭据。
4。 获取从连接工厂通过提供连接对象
ConnectionSpec对象。
得到连接之后使用指定的凭据
ConnectionSpec对象,所有未来的互动,通过互动的对象,进行
用户凭据和EIS符合要求或否认它的基础上
在EIS授权属性。
例17-1获取资源的连接
尝试
{
语境集成电路=新的InitialContext();
ConnectionFactory的比照=(ConnectionFactory的)
ic.lookup(“的java:comp /包膜/ EISResourceName”);
尝试{
/ /使用下面如果解析度- auth的=应用
/ /这是与组件管理认证
/ /没有的JAAS认证别名设置在连接工厂
WSConnectionSpecImpl conSpec =新WSConnectionSpecImpl();
conSpec.setUserName(“用户名”); / /替换用的用户名
值
conSpec.setPassword(“密码”); / /替换密码
值
连接浓度= cf.getConnection(conSpec);
/ /使用下面如果解析度- auth的=集装箱
/ /这是对集装箱管理认证
/ /连接浓度= cf.getConnection();
}捕捉(ResourceException重新){
System.out.println(re.toString());
}
}
赶上(NamingException的东北){
System.out.println(ne.toString());
}
容器管理验证
容器管理验证删除组件的要求
以编程方式供应EIS的凭据访问。 取代
调用的getConnection()与ConnectionSpec对象的方法,
的getConnection()被调用不带参数。 参见例17-1的代码示例。
身份验证连接到EIS使用的凭据,然后提供
由Web容器,应用程序容器,或企业JavaBeans
(EJB)容器,对那里的资源访问的不同。
WebSphere应用服务器V6.1支持Java身份验证和
授权服务(JAAS)的规范。 因此,你可以映射
凭据访问来自任何配置JAAS认证的EIS
登录模块,包括任何自定义的JAAS认证登录模块。
当定义在部署描述符中的资源引用,无论是网络
应用程序部署描述符或EJB部署描述符后,
身份验证设置为容器和WebSphere绑定的JNDI名字
已输入,三个选项成为JAAS登录配置。
三个选项的解释在下面的章节。
容器管理认证(不推荐)
此选项使用容器管理的认证是定义的设置
对资源的连接工厂。 凭据可以来自一个JAAS
当使用身份验证别名DefaultPrincipalMapping
映射配置别名设置,或者从另一个JAAS的映射
验证登录模块。
注:选择此选项并指定DefaultPrincipalMapping和
选择一个JAAS认证别名时,定义资源的
连接工厂提供相同的功能与WebSphere
Application Server V5中。
我们不再推荐此方法。 我们建议您使用使用
默认方法的选择,这是讨论下一步。
使用默认方法
使用默认设置的方法非常类似的行为容器管理
身份验证使用DefaultPrincipalMapping选项。 一个JAAS认证
别名是联系在一起的连接工厂和所有的容器管理
认证请求使用资源引用使用的凭据,从
当连接到该别名的电化学阻抗谱。 所不同的是,从联
JAAS认证别名连接工厂是在做资源
在应用程序中的参考水平。 这减轻了安全曝光
限制范围的凭据的应用程序定义资源
参考。 所有其它应用程序必须提供他们自己的凭据时
访问连接工厂直接从JNDI。 我们建议使用此
方法JAAS认证别名映射到连接工厂。
使用自定义登录配置
此选项允许您使用任何已定义的JAAS认证模块。 输入
JAAS认证名称的模块,因为它是定义在安全性→安全
管理,应用和基础设施→Java认证和
授权服务→申请登录,并指定任何参数
要求。 当连接到资源是必需的,指定的模块
用于获取传递给连接器的凭据。
相关推荐
JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试项目JNDI测试...
在IBM WebSphere Application Server (WAS) 中配置JNDI(Java Naming and Directory Interface)以连接到DB2数据库,涉及到的关键技术主要包括JNDI、DB2数据库连接池以及相关的驱动jar包。以下将详细讲解这些知识点...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问和管理命名和目录服务的一组接口和类。它提供了一种标准的方式来查找和访问多种类型的资源,如数据源、对象服务、邮件服务器等。JNDI的核心理念是...
在部署 WAS 的过程中,涉及到了诸如 JDBC 提供程序配置、数据源配置、虚拟主机别名设置、企业应用安装等多个关键步骤。 ##### 1.1 JDBC 提供程序配置 JDBC (Java Database Connectivity) 是 Java 语言中用来规范...
**JNDI(Java Naming and Directory Interface)**是Java平台中的一个重要组件,它提供了一种标准的方法来查找和访问各种命名和目录服务。这个小项目是针对初学者设计的,旨在帮助他们理解JNDI的基本概念和用法。 ...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API。它为开发者提供了访问各种命名和目录服务(如DNS、LDAP等)的统一接口。在Tomcat服务器中,JNDI的应用主要体现在其内置的...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。JNDI允许Java应用程序查找和操作各种类型的资源,如数据源、对象服务、邮件服务器等,而无需知道这些资源的具体实现细节...
**JNDI相关书籍** 对于深入理解和应用JNDI技术至关重要。这些书籍通常会涵盖以下主题: 1. **JNDI基础**:介绍JNDI的基本概念,包括命名空间、上下文、查找和绑定操作。 2. **JNDI实现**:讲解不同类型的JNDI提供商...
"jndi-tool"是一个专门针对JNDI服务的利用工具,它可以被用来测试和利用JNDI相关的安全漏洞。此工具特别关注RMI和LDAP服务,这两种服务是JNDI常用的两种协议。RMI允许Java对象在不同的Java虚拟机之间进行远程调用,...
1. **导入必要的库**:JNDI相关的类位于`javax.naming`和`javax.naming.directory`包中,需要在项目中引入相应的JAR文件。 2. **创建初始上下文(Initial Context)**:使用`InitialContext`的无参构造函数创建JNDI...
Java 通过JNDI(Java Naming and Directory Interface)访问数据库是一种常见的做法,它提供了一种标准的方法来查找和管理资源,如数据源、EJB、邮件服务器等。JNDI在企业级应用中广泛使用,因为它允许应用程序与...
Java JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API。它允许Java开发者在应用程序中查找和绑定资源,如数据源、EJB(Enterprise JavaBeans)、邮件服务器等。JNDI的核心...
为了使用这些JAR文件,你需要在你的Java项目中包含它们,或者如描述中所述,如果你希望所有使用同一JRE的Java应用都能访问JNDI服务,可以将它们添加到`%JAVA_HOME%\jre\lib\ext`目录。这样做后,JVM会自动加载这些...
jndi获取数据库连接,当前软件版本tomcat8jdk8. Tomcat 为每个在其上运行的 Web 应用都提供了一个 JNDI 的 ...Tomcat中的默认数据源支持基于Commons 项目中的DBCP 1.x连接池,也可以使用实现任何其他连接池
2. **JNDI在应用服务器中的作用:** 在Tomcat这样的应用服务器中,JNDI常用来管理资源,比如数据源(DataSource)。开发者可以将数据源配置在服务器的上下文中,然后通过JNDI查找来获取,这种方式方便了应用的部署和...
**JNDI(Java Naming and Directory Interface)**是Java平台中的一个重要组件,它提供了一种标准的方法来查找和访问各种命名和目录服务。在Java应用中,JNDI通常用于管理资源,如数据库连接池,这正是“JNDI数据...
在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得应用程序能够更加灵活地管理与数据库的连接。本文将...
**Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。它提供了一个统一的接口来查找、访问和管理分布式系统中的资源,如数据库连接池、邮件服务器、对象服务等。JNDI的核心...
JNDI 允许您访问文件系统中的文件,定位远程 RMI 注册表中的对象,访问诸如 LDAP 这样的目录服务,并定位网络上的 EJB。 JNDI 的特性: * 命名服务:命名服务即将名称与对象相关联,以便能通过相应名称访问这些...