我爲遺留系統創建了自己的JCA-> EIS適配器。我在連接到舊系統時遇到身份驗證問題。在GlassFish中,在編寫JCA適配器時,有沒有辦法將匿名用戶映射到EIS用戶?
這很難解釋。在GlassFish v3.1.1中,創建自己的JCA適配器並安裝它之後,會出現一個名爲「Work Security Maps」的選項卡。這似乎是輸入EIS系統的用戶名/密碼的唯一位置。我想用匿名(未經身份驗證的)用戶運行我的EJB,但爲了填寫EIS密碼,似乎必須指定組或用戶映射。
是否有辦法讓所有JCA適配器的調用都使用相同的用戶名/密碼來訪問EIS系統?
期望的行爲類似於JDBC的工作方式。我有一個用戶名/密碼爲我的數據庫。我的應用程序注入了一個數據源,但我不必將當前用戶映射到數據庫用戶。
編輯: 正如在第一個答案中所討論的,你可以用config-properties來實現這個。但是,我不認爲這是根據JCA規範來做到這一點的正確方法。在Websphere中,您可以將JAAS憑據分配爲「組件管理的身份驗證別名」以及何時調用主題。
我似乎無法在GlassFish中做到這一點。如果您調用Subject.getPrivateCredentials(PasswordCredential.class),您將返回一組帶有空白字符串的憑證。
是的,這是一種選擇,而我們最初去這條路線。但是,它以明文形式存儲密碼。 – 2011-12-22 19:57:19
這不是我希望的解決方案,但這是我們實施的。 GlassFish似乎無法在控制檯中爲resoruce設置默認主體。你可以在一個綁定文件中指定它,編譯成你的戰爭/耳朵。 – 2011-12-28 15:10:55