作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 EJB 3.1 应用程序和与该应用程序连接的 java 客户端。
我需要创建用户身份验证。
例子:
class LoginBean{
public remoteLogin(String login, String password){
// create user context with user ID
}
}
class BeanAbc{
public remoteSecureMethod(){
// get user context - if no context throw error
// get user ID/login from user context and do some additional logic..
}
}
最佳答案
基本上(据我所知)EJB 3.1 中的客户端应用程序安全性仍然与 2.x 中的一样,因此您应该找到示例。
您需要设置的内容:
# file auth.conf on the client
adb {
// jBoss LoginModule
org.jboss.security.ClientLoginModule required
;
};
adb
客户端登录模块需要成功。此上下文
adb
链接到服务器端的相应应用程序 jaas 上下文。
CallbackHandler cbh =
new LoginCallbackHandler(user,pass.toCharArray());
try {
LoginContext lc = new LoginContext("adb",cbh);
lc.login(); // <--- triggers the show in the client
}
catch (LoginException e) {
System.err.println("Login failed: "+e.getMessage());
}
adb
从上面的 auth.conf 文件中。
LoginCallbackHandler
可能看起来像这样:
package de.bsd.adb.client;
import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.NameCallback;
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.UnsupportedCallbackException;
public class LoginCallbackHandler implements CallbackHandler {
private String user;
private char[] pass;
// Konstruktor
LoginCallbackHandler(String username,char[] password) {
user=username;
pass=password;
}
// handle() does the real work and is invoked from the client container
public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException
{
// Iterate over the call backs
for (int i =0 ; i< callbacks.length; i++)
{
// NameCallback -> pass Login-Name
if (callbacks[i] instanceof NameCallback)
{
System.out.println("NameCallback");
NameCallback nc = (NameCallback)callbacks[i];
nc.setName(user);
}
// PasswordCallback -> pass Password
else if (callbacks[i] instanceof PasswordCallback)
{
System.out.println("PasswordCallback");
PasswordCallback pc =
(PasswordCallback)callbacks[i];
pc.setPassword(pass);
}
else { // unknown callback
throw new UnsupportedCallbackException(callbacks[i],"Ouch");
}}}
java -Djava.security.auth.login.config=/path/to/auth.conf -cp bla my.Main
关于jakarta-ee - EJB 3.1 中的简单例份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961768/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!