Неверный набор результатов для запроса авторизации - PullRequest
0 голосов
/ 17 ноября 2011

Мне нужно подключиться к стороннему инструменту для получения авторизации, инструмент называется superman, который использует мой клиент.Не уверен, что это в доме или купил.Я использую безопасность Spring для аутентификации, получение пользователя осуществляется путем предоставления запроса извне службе JDBC.Когда выполняется запрос авторизации, специфичный для этого инструмента, я получаю следующую ошибку:

"Authentication event AuthenticationFailureServiceExceptionEvent: liseol; 
details: null; 
exception: PreparedStatementCallback; 
invalid ResultSet access for SQL [SELECT id_fonction_if AS functions 
FROM superman.AUTORISATIONS, superman.INCLUS_FONCTIONS 
WHERE id_grp_de_fonctions_a=id_grp_de_fonctions_if 
AND id_domaine_if =id_domaine_a 
AND id_application_if =id_application_a 
AND id_domaine_a ='SI' 
AND id_application_a ='PAN' 
AND no_emp_a =(select emp_no from sigsi.employes 
where upper(emp_logon)= upper(?))]; 
nested exception is java.sql.SQLException: 
Index de colonne non valide" (Column index is invalid).

Ниже приведены сведения о файле конфигурации безопасности

</security:global-method-security>

<security:http auto-config="true">
  <security:intercept-url pattern="PanierSIG.html"/>
  <security:intercept-url pattern="/**/*.swf"/>
  <security:intercept-url pattern="/**" />
</security:http>



<security:authentication-manager alias="_authenticationManager">
    <security:authentication-provider>
       <security:password-encoder hash="plaintext"/>
       <security:jdbc-user-service data-source-ref="dataSource"
                        users-by-username-query="select LOGON,PASSWORD,CATALOGUE from sigpan.UTILISATEURS where LOGON = ?" 
                        authorities-by-username-query="SELECT id_fonction_if AS functions
                        FROM superman.AUTORISATIONS, superman.INCLUS_FONCTIONS
                        WHERE id_grp_de_fonctions_a=id_grp_de_fonctions_if
                        AND id_domaine_if          =id_domaine_a
                        AND id_application_if      =id_application_a
                        AND id_domaine_a           ='SI'
                        AND id_application_a       ='PAN'
                        AND no_emp_a =(select emp_no from sigsi.employes where upper(emp_logon)= upper(?))"/>

                        <!--
                        group-authorities-by-username-query="select g.id, g.group_name, ga.authority from groups g, group_members gm, group_authorities ga where gm.username = ? and g.id = ga.group_id and g.id = gm.group_id"
                        -->
    </security:authentication-provider>
</security:authentication-manager>

<!-- Automatically receives AuthenticationEvent messages -->
<bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>

Я хотел бы добавить, что мой проектFlex на основе Java.Flex 4, Java 5, Spring 3.0.5.Release и Spring Secuirty 3.1.0.M1.

1 Ответ

0 голосов
/ 18 ноября 2011

«Индекс столбца недействителен» сравним с исключением IndexOutOfBoundsException в ResultSet JDDC.Очевидно, что весенний фреймворк ожидает, что ваш запрос полномочий по имени пользователя вернет более одного столбца.

Я не знаком со средой Spring, но во встроенной защите JBOSSAS, которая основана на JAAS и выглядит очень похоже на то, что вы делаете выше, вам придется добавить столбец «Роли».

SELECT id_fonction_if AS functions, 'Roles'
                        FROM superman.AUTORISATIONS, superman.INCLUS_FONCTIONS
                        WHERE id_grp_de_fonctions_a=id_grp_de_fonctions_if
                        AND id_domaine_if          =id_domaine_a
                        AND id_application_if      =id_application_a
                        AND id_domaine_a           ='SI'
                        AND id_application_a       ='PAN'
                        AND no_emp_a =(select emp_no from sigsi.employes where upper(emp_logon)= upper(?))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...