Jump to content

Jasper External database authentication fails


The Rock

Recommended Posts

I am trying to connecting jasper server authenticating from a external DB.

There i am trying to modify in the file applicationContext-externalAuth-db-mt.xml as below,

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">

    <!-- ########## External JDBC Auth ###########
      - Sample configuration of JasperServer authentication via an external database
    -->
    <bean id="proxyAuthenticationProcessingFilter" class="com.jaspersoft.jasperserver.api.security.externalAuth.BaseAuthenticationProcessingFilter">
        <property name="authenticationManager">
            <ref local="dbAuthenticationManager"/>
        </property>
        <property name="externalDataSynchronizer">
            <ref local="externalDataSynchronizer"/>
        </property>

        <property name="sessionRegistry">
            <ref bean="sessionRegistry"/>
        </property>
        <property name="authenticationDetailsSource">
            <bean class="org.springframework.security.ui.AuthenticationDetailsSourceImpl">
                <property name="clazz">
                    <value>com.jaspersoft.jasperserver.multipleTenancy.MTWebAuthenticationDetails</value>
                </property>
            </bean>
        </property>
        <property name="internalAuthenticationFailureUrl" value="/login.html?error=15"/>
        <property name="defaultTargetUrl" value="/loginsuccess.html"/>
        <property name="invalidateSessionOnSuccessfulAuthentication" value="true"/>
        <property name="migrateInvalidatedSessionAttributes" value="true"/>

    </bean>

    <bean id="proxyAuthenticationSoapProcessingFilter"
          class="com.jaspersoft.jasperserver.api.security.externalAuth.DefaultAuthenticationSoapProcessingFilter">
        <property name="authenticationManager" ref="dbAuthenticationManager"/>
        <property name="externalDataSynchronizer" ref="externalDataSynchronizer"/>

        <property name="invalidateSessionOnSuccessfulAuthentication" value="true"/>
        <property name="migrateInvalidatedSessionAttributes" value="true"/>
    </bean>

    <bean id="proxyBasicProcessingFilter"
          class="com.jaspersoft.jasperserver.api.security.externalAuth.ExternalAuthBasicProcessingFilter">
        <property name="authenticationManager" ref="dbAuthenticationManager"/>
        <property name="externalDataSynchronizer" ref="externalDataSynchronizer"/>

        <property name="authenticationEntryPoint">
            <ref local="basicProcessingFilterEntryPoint"/>
        </property>
    </bean>

    <bean id="proxyAuthenticationRestProcessingFilter" class="com.jaspersoft.jasperserver.api.security.externalAuth.DefaultAuthenticationRestProcessingFilter">
        <property name="authenticationManager">
            <ref local="dbAuthenticationManager"/>
        </property>
        <property name="externalDataSynchronizer">
            <ref local="externalDataSynchronizer"/>
        </property>

        <property name="filterProcessesUrl" value="/rest/login"/>
        <property name="invalidateSessionOnSuccessfulAuthentication" value="true"/>
        <property name="migrateInvalidatedSessionAttributes" value="true"/>
    </bean>

    <bean id="dbAuthenticationManager" class="org.springframework.security.providers.ProviderManager">
        <property name="providers">
            <list>
                <ref bean="externalDaoAuthenticationProvider"/>
                <ref bean="${bean.daoAuthenticationProvider}"/>

            </list>
        </property>
    </bean>
    <bean id="externalDaoAuthenticationProvider" class="org.springframework.security.providers.dao.DaoAuthenticationProvider">
        <property name="userDetailsService"><ref bean="externalUserDetailsService"/></property>

    </bean>

    <bean id="externalUserDetailsService"
          class="com.jaspersoft.jasperserver.multipleTenancy.security.externalAuth.db.MTExternalJDBCUserDetailsService">
        <property name="dataSource" ref="externalDataSource"/>
        <property name="usersByUsernameAndTenantNameQuery" value="select su.user_id username,su.password,su.tenant_id tenantid from USER_TABLE su where su.user_id=? and su.tenant_id=?"/>
        <property name="authoritiesByUsernameQuery" value="SELECT u.user_id username, r.role_name rolename FROM USER_TABLE u, USER_ROLE ur WHERE u.user_id = ur.user_id and u.user_id = ?"/>
    </bean>

    <!-- ########## External JDBC Auth ########### -->

    <!-- ############ Synchronizer ############ -->
    <bean id="externalDataSynchronizer"
          class="com.jaspersoft.jasperserver.api.security.externalAuth.ExternalDataSynchronizerImpl">
        <property name="externalUserDetailsService">
            <ref bean="externalUserDetailsService"/>
        </property>
        <property name="externalUserProcessors">
            <list>
                <ref local="externalUserSetupProcessor"/>
                <!-- Example processor for creating user folder.
                    Other custom processors can be created and
                    added to the list.-->
                <!--<ref local="externalUserFolderProcessor"/>-->
            </list>
        </property>
    </bean>

    <bean id="abstractExternalProcessor" class="com.jaspersoft.jasperserver.api.security.externalAuth.processors.AbstractExternalUserProcessor" abstract="true">
        <property name="repositoryService" ref="${bean.repositoryService}"/>
        <property name="userAuthorityService" ref="${bean.userAuthorityService}"/>
        <property name="tenantService" ref="${bean.tenantService}"/>
        <property name="profileAttributeService" ref="profileAttributeService"/>
        <property name="objectPermissionService" ref="${bean.objectPermissionService}"/>
    </bean>

    <bean id="externalUserSetupProcessor" class="com.jaspersoft.jasperserver.api.security.externalAuth.processors.ExternalUserSetupProcessor" parent="abstractExternalProcessor">
        <property name="userAuthorityService">
            <ref bean="${bean.internalUserAuthorityService}"/>
        </property>

        <property name="organizationRoleMap">
            <map>
                <entry>
                    <key>
                        <value>ROLE_REPORT</value>
                    </key>
                        <value>ROLE_ADMIN</value>
                </entry>
                <!-- Mapping customers roles to JS roles Example -->
                <!--<entry>-->
                <!--<key>-->
                <!-- ?ustomer role(with adding ROLE_ prefix) which need to be mapped to root JS roles -->
                <!--<value>ROLE_ADMIN</value>-->
                <!--</key>-->
                <!-- root JS role customer role to be mapped to -->
                <!--<value>ROLE_ADMINISTRATOR</value>-->
                <!--</entry>-->
            </map>
        </property>

        <property name="defaultInternalRoles">
            <list>
                <value>ROLE_USER</value>
            </list>
        </property>
    </bean>
    <bean id="externalUserFolderProcessor" class="com.jaspersoft.jasperserver.api.security.externalAuth.processors.ExternalUserFolderProcessor" parent="abstractExternalProcessor">
        <property name="repositoryService" ref="${bean.unsecureRepositoryService}"/>
    </bean>

    <!-- ############ Synchronizer ############ -->


    <!-- ############## external dataSource ############### -->
   <bean id="externalDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@some IP:1521:demodb"/>
        <property name="username" value="jasper"/>
        <property name="password" value="jasper123"/>
    </bean>
    <!-- ############## external dataSource ############### -->
</beans>

 

But i am unable to login giving external DB username and password .

Is there anything to be changed ????

Please suggest me i am in trouble.

 

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...