小编Yve*_*tin的帖子

如何在WebSphere上为远程EJB调用启用Kerberos身份验证?

由于经典的JNDI查找和RMI-IIOP方法调用,我的应用程序是一个独立的Swing客户端调用EJB无状态会话bean.它作为Java WebStart应用程序启动.我的目标是从获取客户端用户的身份EJBContextgetCallerPrincipal感谢的Kerberos SSO在Windows工作站,ActiveDirectory中和在Linux上运行的WebSphere服务器之间的方法.

由于信息中心文档,我已经在网络部署模式下成功配置了我的WebSphere单元以支持Kerberos身份验证.

这两个krb5.confkrb5.keytab文件都OK,并在Linux测试kinit,klist并且wsadmin,$AdminTask validateKrbConfig解答true.

客户端安装不只是指JAAS login.config文件,以实现与指挥系统属性.我的直觉告诉我这可能还不够.

但现在,我找不到更多信息来完成测试用例:

  • 如何设置JNDI初始上下文环境以触发Kerberos协商?
  • 如果服务器端有其他要求,比如用角色保护我的EJB(例如JBoss不需要它)?

更新

由于没有运行JavaEE客户端容器./launchClient,我在JNLP中设置了要读取的必需属性sas.client.props和JAAS登录配置:

<property name="java.security.auth.login.config" value="C:\temp\wsjaas_client.config"/>
<property name="com.ibm.CORBA.ConfigURL" value="C:\temp\sas.client.props"/>
Run Code Online (Sandbox Code Playgroud)

wsjaas_client.config是针对Oracle Java的,因此它包含:

WSKRB5Login{
    com.sun.security.auth.module.Krb5LoginModule required
       debug=true useTicketCache=true doNotPrompt=true;
};
Run Code Online (Sandbox Code Playgroud)

我的sas.client.props包含:

com.ibm.CORBA.securityEnabled=true
com.ibm.CORBA.authenticationTarget=KRB5
com.ibm.CORBA.loginSource=krb5Ccache
com.ibm.CORBA.loginUserid=
com.ibm.CORBA.loginPassword=
com.ibm.CORBA.krb5CcacheFile=
com.ibm.CORBA.krb5ConfigFile=C:\\temp\\krb5.conf
Run Code Online (Sandbox Code Playgroud)

目前,没有触发Kerberos身份验证:WAS/myserver.mydomain.com我的kerberos缓存(来自Windows或Linux工作站)中的SPN没有TGS,并且仍然匿名建立JNDI连接.

没有错误消息,没有警告,最后没有委托人.我如何诊断错误或缺乏?

更新2012/06/20

这是向前迈出的一步.在我的应用程序JNLP中运行Oracle Java,我已设置以下属性以使用IBM ORB并启用完整的跟踪和调试信息:

<property name="org.omg.CORBA.ORBSingletonClass" value="com.ibm.rmi.corba.ORBSingleton"/>
<property name="org.omg.CORBA.ORBClass" value="com.ibm.CORBA.iiop.ORB"/> …
Run Code Online (Sandbox Code Playgroud)

java websphere ejb kerberos java-ee

14
推荐指数
2
解决办法
4861
查看次数

使用Facebook的Fresco加载位图

我正试图在我的Android应用程序中用Fresco替换Picasso.但是我不确定如何使用Fresco简单地加载位图.

毕加索我会做以下几点.

Bitmap poster = Picasso.with(getActivity())
                    .load(url)
                    .resize(Utils.convertDpToPixel(WIDTH,HEIGHT))
                    .centerCrop()
                    .get();
Run Code Online (Sandbox Code Playgroud)

我一直无法弄清楚如何用这个Fresco创建一个Bitmap.有任何想法吗?

android facebook bitmap picasso fresco

13
推荐指数
2
解决办法
2万
查看次数

如何从纯客户端调用远程EJB(基于IIOP的RMI)时传播JAAS主题

我正在使用从原始Java运行时上运行的独立EJB客户端到JavaEE服务器的自定义Principal测试JAAS Subject的传播.我的目标是JBoss和WebSphere实现.

根据这个论坛帖子,我预计它可以轻松地与JBoss一起使用.

这是我的EJB客户端代码代码段:

Subject subject = new Subject();
Principal myPrincipal = new MyPrincipal("me I myself");
subject.getPrincipals().add(myPrincipal);

PrivilegedExceptionAction<String> action = new PrivilegedExceptionAction<String>() {
    public String run() throws Exception {
            String result;
            System.out.println("Current Subject: " + Subject.getSubject(AccessController.getContext()));
            InitialContext ic = new InitialContext();
            Business1 b = (Business1) ic.lookup("StatelessBusiness1");
            result = b.getNewMessage("Hello World");
            return result;
        }
    };

result = subject.doAs(subject, action);
System.out.println("result "+result);
Run Code Online (Sandbox Code Playgroud)

服务器端代码是:

public String getNewMessage(String msg) {
    System.out.println("getNewMessage principal: " + sessionContext.getCallerPrincipal());
    System.out.println("Current Subject: " …
Run Code Online (Sandbox Code Playgroud)

java websphere jboss jaas java-ee

9
推荐指数
1
解决办法
1万
查看次数

HornetQ无法验证用户

我在使用hornetQ的ubuntu上使用jboss AS 6 Final

我使用管理面板在名为Message Buffer Queue的服务器上创建了一个新的Queue.

我收到以下错误:

Unable to validate user: guest for check type CONSUME for address jms.queue.MessageBufferQueue
Run Code Online (Sandbox Code Playgroud)

这是我的文件:

package org.jboss.ejb3timers.example;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.UUID;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;

public class TestClass {

    ConnectionFactory Hconnection=null;
    Queue  q=null;
    Connection Hconn=null;
    Context lContext=null;
    MessageConsumer messageConsumer=null;
    MessageProducer messageProducer=null;
    javax.jms.Session session=null;

    /** …
Run Code Online (Sandbox Code Playgroud)

jms hornetq jboss6.x

8
推荐指数
1
解决办法
1万
查看次数

如何将Spring安全登录传播到EJB?

上下文

我有一个在JBoss 4.2.3应用服务器上运行的J2EE应用程序.可以通过Web界面访问该应用程序.身份验证通过基本身份验证完成.在EJB内部,我询问bean的安全上下文中的主体(登录用户的名称),并在允许此用户访问EJB的此方法时进行一些授权检查.EJB处于与处理Web前端的servlet不同的生活中,因此我无法直接访问spring应用程序上下文.

要求改变

我想切换到Spring Security来处理用户登录.

如何将spring登录信息传播到JBoss安全上下文,这样我仍然可以使用我的EJB而不必重写它们?


想法和链接

我已经找到了页谈论"使用Spring Security到EJB层传播身份",但可惜的是它指的是一个旧版本的Spring Security(Acegi的)和我不熟悉不够使用Spring Security,使这项工作与实际版本(3.0.2).

是使用WebLogic看起来类似的东西.

authentication jboss ejb spring-security

6
推荐指数
1
解决办法
3259
查看次数