Проблема с кодировкой в ​​конструкторе приложений APEX, вызванная CAS - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема с мастерской приложений APEX / sql на некоторое время. Существует проблема с кодировкой (APEX должен обслуживать восточно-европейские символы). Finnaly я нашел источник проблемы. Я внедрил CAS SSO в APEX через Интернет. xml (APEX на Tomcat / ORDS). Без CAS все работает нормально, но мне это нужно.

Ниже есть сеть. xml конфигурация.


    <filter>
        <filter-name>CAS Single Sign Out Filter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>**************</param-value>
        </init-param>
    </filter>
        <filter-mapping>
        <filter-name>CAS Single Sign Out Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>




    <listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
    </listener>

    <filter>
        <filter-name>CAS Authentication Filter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.Saml11AuthenticationFilter</filter-class>

        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>****************</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>***************</param-value>
        </init-param>
        </filter>

    <filter>
        <filter-name>CAS Validation Filter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Saml11TicketValidationFilter</filter-class>

        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>****************</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>*************</param-value>
        </init-param>
        <init-param>
            <param-name>redirectAfterValidation</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>useSession</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>acceptAnyProxy</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>proxyReceptorUrl</param-name>
            <param-value>/apex/proxyUrl</param-value>
        </init-param>
        <init-param>
            <param-name>proxyCallbackUrl</param-name>
            <param-value>*************</param-value>
        </init-param>

        <init-param>
            <param-name>tolerance</param-name> 
            <param-value>12000</param-value> 
        </init-param> 
        <init-param>
            <param-name>authn_method</param-name>
            <param-value>mfa-duo</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
        <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    </filter>





    <filter-mapping>
        <filter-name>CAS Validation Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>CAS Authentication Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


Я пытался реализовать что-то из https://github.com/apereo/java-cas-client/blob/master/README.md например, есть предложение

SingleSignOutFilter может влиять на кодировку символов. Это становится наиболее очевидным, когда используется в сочетании с такими приложениями, как Atlassian Confluence. Рекомендуется явно настроить либо фильтр кодировки символов VT, либо фильтр кодировки символов Spring с явными кодировками.

Но я не знаю, как его реализовать. Когда я попытался реализовать приведенный ниже код, этот фильтр не запускается должным образом, и я не могу проверить журналы ошибок.

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>

    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

Пример проблемы: SQL workshop>

select 'ł' from dual;

результат: A?

Как я могу это исправить?

1 Ответ

0 голосов
/ 25 марта 2020

Добавление CharackerEncodingFilter в сеть. xml было правильно. Я нашел журналы и заметил, что существует проблема с отсутствующими классами.

Было требование добавить немного .jar в WEB-INF / lib

  • org.springframework.beans
  • org.springframework.context
  • spring-web
  • org.springframework.core

После перезагрузки tomcat все работает нормально

...