Как настроить логический тип примитива для метода Set Jetty? - PullRequest
0 голосов
/ 08 февраля 2019

Я использую karaf 4.0.10 с Jetty 9.2.21 и pax-web-jetty 4.3.4.Я попытался настроить SecurityHandler с помощью jetty-web.xml, установив для логического атрибута SecurityHandler

<Configure id="webapp"
class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
   <Set name="sessionRenewedOnAuthentication" type="boolean">false</Set>
</Get>

Однако произошел сбой

    DOMJettyWebXmlParser | NoSuchMethodException while parsing jetty-web.xml
java.lang.NoSuchMethodException: org.eclipse.jetty.security.ConstraintSecurityHandler.setSessionRenewedOnAuthentication(java.lang.Boolean)
    at java.lang.Class.getMethod(Class.java:1786)[:1.8.0_172]
    at org.ops4j.pax.web.service.jetty.internal.util.DOMJettyWebXmlParser.set(DOMJettyWebXmlParser.java:188)[634:org.ops4j.pax.web.pax-web-jetty:4.3.4]

Исключение является правильным: ConstraintSecurityHandler имеет метод с аргументом примитивный логический тип, а не логический класс, который DOMJettyWebXmlParser пытался использовать.

Мне удалось использовать немного другую конфигурацию

<Configure id="webapp"
    class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="securityHandler">           
       <Call name="setSessionRenewedOnAuthentication">
           <Arg type="boolean">false</Arg>
       </Call>
    </Get>
</Configure>

На этот раз метод был найден.У меня есть вопрос: это ошибка в pax-web или я что-то не так делаю в моем методе Set?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...