سؤال

أنا أعمل حاليا على أحد التطبيقات التي تستفيد من الربيع سامل (http://projects.spring.io/spring-security-saml/) المشروع كجزء من المصادقة لدينا.وأنا أعلم أنه لا يزال في أرسي ولكن ذلك هو التطبيق الذي نعمل عليه.لدينا مكتبة متكاملة وتعمل بشكل كامل عند نشرها إلى تومكات 7 ولكن يتم تشغيل في القضايا عند نشر إلى ويبلوجيك 12 ج (12.0.1.2).على ويبلوجيك دون رمي أي أخطاء سيتم ديكربيتد قيم التأكيد كما فارغة لا أخطاء.

يبدو أن المشكلة في مكتبات زيرسيس.الربيع سامل (بسبب أوبنسامل) يتطلب 2.10.0 بقدر ما أنا قادر على معرفة ولكن ويبلوجيك يوفر 2.8.0 من مكتبة زيرسيس.لقد حاولت تحديث نسخة مكتبة زيرسيس من قبل بما في ذلك زرسيسيمبل السليم و شمل-أبيس الجرار في مجلد ويب إنف/ليب المشاريع.هذا إصلاح قضية ديكربيتينغ مع الربيع سامل ولكن يكسر القدرة ويبلوجيكش لتحليل صفحات جسب.لقد أدرجت جزءا من تتبع المكدس للاستثناءات زيرسيس غير ترقية وترقية أدناه.إذا كان أي شخص لديه أي فكرة عن كيفية إصلاح هذه المشكلة بشكل صحيح بحيث الربيع سامل يمكن أن تعمل من ويبلوجيك في حين لا كسر الوظيفة الافتراضية سأكون ممتنا للغاية.

هذا هو تتبع المكدس قبل تحديث زيرسيس

2014-07-31 10:43:37,675 [[ACTIVE] ExecuteThread: '2' for queue:     'weblogic.kernel.Default (self-tuning)'] DEBUG org.apache.xml.security.algorithms.JCEMapper   - Request for U
RI http://www.w3.org/2001/04/xmlenc#aes256-cbc
2014-07-31 10:43:37,675 [[ACTIVE] ExecuteThread: '2' for queue:    'weblogic.kernel.Default (self-tuning)'] DEBUG org.apache.xml.security.encryption.XMLCipher    - JCE Algorithm
 = AES/CBC/ISO10126Padding
<Jul 31, 2014 10:43:37 AM EDT> <Error> <HTTP> <BEA-101020>     <[ServletContext@1538876008[app:intranet module:intranet.war path:null spec-version:3.0]]    Servlet failed with an
Exception
java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.valueOf(Integer.java:582)
    at org.opensaml.common.SAMLVersion.valueOf(SAMLVersion.java:89)
    at org.opensaml.saml2.core.impl.AssertionUnmarshaller.processAttribute(AssertionUnmarshaller.java:71)
    at org.opensaml.xml.io.AbstractXMLObjectUnmarshaller.unmarshallAttribute(AbstractXMLObjectUnmarshaller.java:254)
    at org.opensaml.xml.io.AbstractXMLObjectUnmarshaller.unmarshall(AbstractXMLObjectUnmarshaller.java:113)
    at org.opensaml.xml.encryption.Decrypter.decryptDataToList(Decrypter.java:479)
    at org.opensaml.xml.encryption.Decrypter.decryptData(Decrypter.java:403)
    at org.opensaml.saml2.encryption.Decrypter.decryptData(Decrypter.java:141)
    at org.opensaml.saml2.encryption.Decrypter.decrypt(Decrypter.java:69)
    at org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:190)
    at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:82)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
    at org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:84)

هذا هو تتبع المكدس بعد تحديث زيرسيس إلى 2.10.0.

weblogic.servlet.jsp.CompilationException: Failed to compile JSP /WEB-  INF/jsp/errors/500.jsp
500.jsp:1:1: The validator class: "org.apache.taglibs.standard.tlv.JstlCoreTLV" has       failed with the following exception: "java.lang.ClassCastException: weblogic.xml.jaxp.Re
gistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory".
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
^-------------------------------------------------------------^
500.jsp:2:5: No tag library could be found with this URI. Possible causes could be that     the URI is incorrect, or that there were errors during parsing of the .tld file.
<%@ taglib prefix="int" uri="intranet"%>
^----^
 500.jsp:2:5: No tag library could be found with this URI. Possible causes could be   that the URI is incorrect, or that there were errors during parsing of the .tld file.
<%@ taglib prefix="int" uri="intranet"%>
^----^
500.jsp:6:3: This tag can only appear as a subelement of a standard or custom action.    Exceptions are: jsp:body, jsp:attribute, jsp:expression, jsp:scriptlet, and jsp:declaration.
    <jsp:attribute name="minifiedJs">
     ^-----------^
 500.jsp:8:3: This tag can only appear as a subelement of a standard or custom action.   Exceptions are: jsp:body, jsp:attribute, jsp:expression, jsp:scriptlet, and jsp:declaration.
    <jsp:attribute name="nonMinifiedJs">
     ^-----------^
  500.jsp:11:3: This tag can only appear as a subelement of a standard or custom action. Exceptions are: jsp:body, jsp:attribute, jsp:expression, jsp:scriptlet, and jsp:declaration.
    <jsp:body>
     ^------^

    at weblogic.servlet.jsp.JavelinxJSPStub.reportCompilationErrorIfNeccessary(JavelinxJSPStub.java:243)
    at weblogic.servlet.jsp.JavelinxJSPStub.compilePage0(JavelinxJSPStub.java:179)
    at weblogic.servlet.jsp.JavelinxJSPStub.access$000(JavelinxJSPStub.java:50)
    at weblogic.servlet.jsp.JavelinxJSPStub$1.run(JavelinxJSPStub.java:108)
    at java.security.AccessController.doPrivileged(Native Method)
    at weblogic.servlet.jsp.JavelinxJSPStub.compilePage(JavelinxJSPStub.java:105)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:247)
    at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:200)
    at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:403)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:295)
    at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:478)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:367)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    ...
هل كانت مفيدة؟

المحلول

النهج التالي يسمح تجميع زيرسيس مخصصة و زالان المكتبات في ويبلوجيك:

  1. إنشاء أرشيف الأذن spring-security-saml2-sample.ear
  2. تضمين ملف الربيع سامل spring-security-saml2-sample.war داخل الأذن ، يجب أن تحتوي الحرب على نسخة خاصة من زيرسيس و زالان.
  3. إنشاء ملف META-INF/application.xml داخل الأذن مع المحتوى التالي:

    <application xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
      <module>
        <web>
          <web-uri>spring-security-saml2-sample.war</web-uri>
          <context-root>spring-security-saml2-sample</context-root>
        </web>
      </module>
    </application>
    
  4. إنشاء ملف META-INF/weblogic-application.xml مع المحتوى التالي:

    <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"
                          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                          xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.oracle.com/technology/weblogic/920/weblogic-application.xsd">
        <xml>
            <parser-factory>
                <saxparser-factory>
                    org.apache.xerces.jaxp.SAXParserFactoryImpl
                </saxparser-factory>
                <document-builder-factory>
                    org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
                </document-builder-factory>
                <transformer-factory>
                    org.apache.xalan.processor.TransformerFactoryImpl
                </transformer-factory>
            </parser-factory>
        </xml>
        <prefer-application-packages>
            <package-name>org.opensaml.*</package-name>
            <package-name>org.apache.xerces.*</package-name>
            <package-name>org.apache.xalan.*</package-name>
        </prefer-application-packages>                       
    </weblogic-application>
    
  5. نشر الأرشيف

نصائح أخرى

لأي شخص يأتي في وقت لاحق.انتهى بي الأمر في حل المشكلة عن طريق التحديث إلى Xercesimpl الإصدار 2.9.0.يبدو أن هذا هو إصدار بقعة حلوة لهذه المشكلة، على الرغم من أنه أقل مما تطلبه OpenSaml أنه يعمل على إصلاح المشكلة أثناء عدم التسبب في أي مشاكل أخرى مع WeBlogic (بقدر ما واجهت حاليا).يتطلب Xerces 2.10.0 إصدار محدث من تطبيقات برمجة التطبيقات XML والذي كان يسبب المشكلات مع WeBlogic (2.9.0 يبدو للعمل مع إصدار XML-Apis المضمن في Weblogic).

هل لعبت مع prefer-web-inf-classes لملف حرب أو prefer-application-packages لملف الأذن?من المحتمل أن يحل أحدهم المشكلة:

في ويبلوجيك-التطبيق.شمل:

<wls:prefer-application-packages>
    <wls:package-name>org.apache.xerces.xni.parser.*</wls:package-name>
    <wls:package-name>org.apache.xerces.parsers.*</wls:package-name>
    <wls:package-name>org.apache.xalan.*</wls:package-name>
</wls:prefer-application-packages>

في ويبلوجيك.شمل:

<wls:container-descriptor>
    <wls:prefer-web-inf-classes>true</prefer-web-inf-classes>
</wls:container-descriptor>

انظر هذه مستندات أوراكل هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top