JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » EJB / 其它Java EE 討論區 » EJB3  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 EJB3 Security on JBoss
fjj





發文: 127
積分: 5
於 2008-11-07 18:18 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
EJB3 Security on JBoss

這是小弟最近在進行 EJB3 的 Security 的心得, 期待能與各位分享!!...
並請各位前輩給予指教!!...謝謝!!...

1. 修改 JBoss Server 下的 ~/server/default/conf/login-config.xml
您有兩種設定方式 : 使用 檔案認證 或是使用 資料庫認證
1-1. 使用檔案系統認證 :
(參考 http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html 其中的 8.4.6.2. org.jboss.security.auth.spi.UsersRolesLoginModule 一節說明)
1
2
3
4
5
6
7
8
    <application-policy name = "EJB3">
       <authentication>
          <login-module code = "org.jboss.security.auth.spi.UsersRolesLoginModule" flag = "required">
             <module-option name = "usersProperties">props/users.properties</module-option>
             <module-option name = "rolesProperties">props/roles.properties</module-option>
          </login-module>
       </authentication>
    </application-policy>

如果您採用 檔案方式認證, 請記得加入 users.properties (格式 : 帳號=密碼) , roles.properties (格式: 帳號=權限)
[ users.properties ]
1
admin=admin


[ roles.properties ]
1
admin=admin



1-2. 資料庫認證 :
(參考 http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html 其中的 8.4.6.4. org.jboss.security.auth.spi.DatabaseServerLoginModule 一節說明)
1
2
3
4
5
6
7
8
9
    <application-policy name = "EJB3">
       <authentication>
          <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required">
              <module-option name = "dsJndiName">java:/MySqlDS</module-option>
              <module-option name = "principalsQuery">SELECT pass FROM user WHERE userName=?</module-option>
              <module-option name = "rolesQuery">SELECT role FROM roles WHERE userName=?</module-option>
          </login-module>
       </authentication>
    </application-policy>


2. EJB的專案
請加入 jboss.xml 在 META-INF 目錄中
[jboss.xml]
1
2
3
4
5
   <?xml version="1.0" encoding="UTF-8"?>
   <jboss>
       <security-domain>EJB3</security-domain>
       <unauthenticated-principal>anonymous</unauthenticated-principal>
   </jboss>


3. 在Session Bean 裡面加入權限控制
(權限控制請參考: http://database.in2p3.fr/doc/oracle/Oracle_Application_Server_10_Release_3/web.1013/b28221/servsecr004.htm)
1
2
3
4
5
6
7
8
9
@Stateless
@RolesAllowed({"admin"})
public class TestService implements TestServiceLocal, TestServiceRemote, ServiceManagement {
 
  @RolesAllowed({"admin"})
  public String getHello(){
       return "Hello World";
  }
}


4. Client端測試
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class ClientMain {
 
    public static InitialContext getInitialContext() throws javax.naming.NamingException {
        Properties p = new Properties();
        p.setProperty(javax.naming.Context.SECURITY_PRINCIPAL, "admin");
        p.setProperty(javax.naming.Context.SECURITY_CREDENTIALS, "admin");
        p.setProperty(javax.naming.Context.PROVIDER_URL, "jnp://localhost:1099");
        p.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory");
        return new javax.naming.InitialContext(p);
    }
  
     public static void main(String[] args) throws Exception {
        InitialContext ctx = getInitialContext();
        TestService service = (TestService) ctx.lookup("HISService/remote");
        System.out.println(service.getHello());
     }
}


fjj edited on 2008-11-07 21:06
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
5777 EJB3 Security on JBoss fjj 3299 2008-11-07 18:18
4898 Re:EJB3 Security on JBoss secretguest0824 378 2008-11-18 15:27
4811 Re:EJB3 Security on JBoss fjj 1777 2008-11-19 18:50
5451 Re:EJB3 Security on JBoss fjj 2527 2008-12-08 11:54
4817 Re:EJB3 Security on JBoss secretguest0824 1890 2008-11-20 12:49
4761 Re:EJB3 Security on JBoss secretguest0824 317 2008-11-20 14:23
4885 Re:EJB3 Security on JBoss fjj 442 2008-11-20 14:30
4770 Re:EJB3 Security on JBoss secretguest0824 98 2008-11-24 17:49
» JWorld@TW »  EJB / 其它Java EE 討論區 » EJB3

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8