2016-01-08 12 views
7

के साथ टोमकैट 7 एक्सेस लॉग मैं अपने tomcat एक्सेस लॉग फ़ाइल में क्लाइंट प्रमाणपत्र जानकारी शामिल करने का प्रयास कर रहा हूं।क्लाइंट सर्टिफिकेट विषय नाम

मैंने इस पोस्ट की समीक्षा की है: https://serverfault.com/questions/624790/tomcat-log-the-equivalent-of-ssl-client-s-dn लेकिन यह केवल प्रमाण का संदर्भ देता है और मैं वास्तव में किसी भी गुण को निकालने में सक्षम नहीं हूं।

मेरे लॉगफ़ाइल पैटर्न इस तरह दिखता है:

pattern="... [%{javax.servlet.request.X509Certificate}r]" 

यह लौटने है: [[Ljava.security.cert.X509Certificate; @ 667a078]

वहाँ इस तरह के रूप प्रमाण पत्र गुण पहुंचने का एक तरीका है यह:

pattern="... [%{javax.servlet.request.X509Certificate.SubjectName}r]" 

मैं किसी भी कोड संशोधन के बिना प्रमाणपत्र जानकारी निकालने में सक्षम होना चाहता हूं।

+0

क्या तुमने कभी यह पता लगाने क्या है कि किसी भी कोड संशोधन के बिना यह करने के लिए में परिभाषित किया गया है? – WiteCastle

+0

दुख की बात नहीं। क्लाइंट सर्टिफिकेट को कहीं और समाप्त करने और छेड़छाड़ करने के लिए डंपिंग समाप्त हो गया। –

उत्तर

0

आप उस विषय नाम का उपयोग कर उपयोगकर्ता को प्रमाणित करते हैं, तो मुझे लगता है कि आप के साथ "%u"

आप कुछ और की जरूरत है, तो आप लिखने की ज़रूरत उपयोगकर्ता नाम लॉग इन कर सकते एक javax.servlet.Filter या एक ServletRequestListener जो वह मान सेट ServletRequest पर एक विशेषता के रूप में। मान किसी ऑब्जेक्ट हो सकता है जो स्ट्रिंग() को लागू करता है।

javax.servlet.request.X509Certificate अनुरोध विशेषता प्रमाण पत्र की एक सरणी है और सर्वलेट विशिष्टता ch.3.9 एसएसएल गुण (सर्वलेट युक्ति 3.1)

संबंधित मुद्दे