2012-05-09 26 views
12

जेबॉस एएस 5 में, मेरे पास * -ds.xml में परिभाषित डेटास्रोत है लेकिन * -jboss-beans.xml में उपयोगकर्ता नाम/एन्क्रिप्टेड पासवर्ड डालें।जेबॉस एएस 7.1 - डाटासोर्स पासवर्ड को एन्क्रिप्ट करने के लिए कैसे करें

अब जेबॉस एएस 7.1 में, डेटासोर्स को स्टैंडअलोन.एक्सएमएल या डोमेन.एक्सएमएल में परिभाषित किया गया है। एएस 7.1 में एन्क्रिप्टेड पासवर्ड कहां रखा जाए?

दूसरे शब्दों में, एएस 7 में एक स्पष्ट पासवर्ड एन्क्रिप्टेड और सुरक्षित कैसे है?

उत्तर

27

एएस 7 में आप एक एन्क्रिप्टेड पासवर्ड डोमेन जोड़ने के लिए SecureIdentityLoginModule का उपयोग कर सकते हैं। उदाहरण के लिए, आप standalone.xml या domain.xml में एक सुरक्षा डोमेन को परिभाषित कर सकते हैं:

<security-domain name="EncryptedPassword"> 
    <authentication> 
    <login-module code="SecureIdentity" flag="required"> 
     <module-option name="username" value="test"/> 
     <module-option name="password" value="encrypted_password"/> 
    </login-module> 
    </authentication> 
</security-domain> 

तो फिर तुम standalone.xml या डोमेन इस userid/लोक निर्माण विभाग के संयोजन का उपयोग करता है कि आपके विशेष डेटा स्रोत में इस सुरक्षा डोमेन जोड़ सकते हैं .xml:

<datasource ... > 
     ..... 
     <security> 
       <security-domain>EncryptedPassword</security-domain> 
     </security> 
    </datasource> 

एन्क्रिप्ट करने के लिए पासवर्ड ही है, तो आप इस आदेश चला सकते हैं (अपने विशेष AS7 डाउनलोड में picketbox जार और लॉगिंग जार के संस्करणों सत्यापित करें तदनुसार विकल्प):

java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6.<beta|final>.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.<some_version>.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password 

यह एक एन्क्रिप्टेड पासवर्ड वापस लौटाएगा जिसका उपयोग आप अपने सुरक्षा डोमेन में कर सकते हैं।

आप जेबॉस एएस 7 सुरक्षा उपप्रणाली here के बारे में अधिक पढ़ सकते हैं। चूंकि ओपन सोर्स चट्टान, आप देख सकते हैं कि एन्कोडिंग कोड SecureIdentityLogin के स्रोत कोड में कैसे काम करता है। आप स्रोत कोड में नोटिस करेंगे कि यह एन्क्रिप्शन के लिए Blowfish का उपयोग करता है।

+0

इसके अलावा shatk से उत्तर देखें, managedConnectionFactoreName मॉड्यूल-विकल्प प्रदान किया जाना चाहिए। –

5

नीचे पूरी सुरक्षा के लिए JBoss के रूप में -7 डोमेन विन्यास है:

 <security-domains> 
     <!-- Security Setting's --> 
     <security-domain name="encryptedSecurity" cache-type="default"> 
      <authentication> 
       <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required"> 
       <module-option name="username" value="user_name"/> 
       <module-option name="password" value="encrypted_password"/> 
       <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=dataSource-1-PoolName,dataSource-2-PoolName"/> 
      </login-module> 
      </authentication> 
     </security-domain> 
+0

क्या एकाधिक डेटा स्रोतों के लिए एक ही सुरक्षा मॉड्यूल होना संभव है? मैं jboss दस्तावेज़ पढ़ रहा हूं और वे केवल एक डेटास्रोत का उल्लेख करते हैं: jboss.jca: service = {type}, name = {jndiName}। मुझे लगता है कि आपने नाम = डेटा स्रोत -1-पूलनाम, डेटा स्रोत-2-पूल नाम निर्दिष्ट किया है –

2

एक वातावरण CentOS रिलीज 6.3 में, JBoss-EAP-6.0.0 यह केवल कोड = "SecureIdentity" के साथ काम किया, का उपयोग कर पासवर्ड एन्क्रिप्शन के लिए picketbox-4.0.9। अंतिम-redhat-1.jar।

<security-domain name="some-ds-EncryptedPassword"> 
    <authentication> 
    <login-module code="SecureIdentity" flag="required"> 
     <module-option name="username" value="username"/> 
     <module-option name="password" value="encrypted_password"/> 
    </login-module> 
    </authentication> 
</security-domain> 

कोड = "SecureIdentityLogin" देता है "PB00024: प्रवेश निषेध: अनधिकृत फोन करने वाले: अशक्त"।

स्रोत: https://docs.jboss.org/author/display/AS7/Security+subsystem+configuration

1

जार के साथ सरल परियोजना ( jboss-प्रवेश-3.1.4.GA-redhat-2.jar picketbox-4.1.1.Final-redhat-1.jar picketbox- बनाने कॉमन्स-1.0.0.final-redhat-3.jar picketbox-infinispan-4.1.1.Final-redhat-1.jar) और इनपुट आर्ग के साथ कस्टम वर्ग चलाएँ:

public class Test { 

    public static void main(String[] args) throws Exception { 
     new org.picketbox.datasource.security.SecureIdentityLoginModule() 
       .main(args); 

    } 

} 

आउटपुट होगा: एन्कोडेड पासवर्ड: 3 डी 5bc094c128 ...

2

विंडोज़ पर चलने पर कौन दिलचस्पी रखता है (और जेबॉस ईएपी 6.4 पर मेरे मामले में ...)

set JBOSS_HOME=C:\dev\jboss\jboss-eap-6.4 
set MYPATH=%JBOSS_HOME%\modules\system\layers\base\org\picketbox\main\picketbox-4.1.1.Final-redhat-1. 
jar;%JBOSS_HOME%\modules\system\layers\base\org\jboss\logging\main\jboss-logging-3.1.4.GA-redhat-2.jar; 
java -classpath %MYPATH% org.picketbox.datasource.security.SecureIdentityLoginModule SecretPass 

Encoded password: 13e0362237c93a9cda89f5b3da271521 

आशा इस मदद करता है, Matteo