CBoard icon indicating copy to clipboard operation
CBoard copied to clipboard

CBoard制作的dashboard图表如何与业务系统集成?

Open ruanchengping opened this issue 7 years ago • 6 comments

CBoard制作的dashboard图表如何与业务系统集成,用户登录业务系统,CBoard制作的dashboard图表作为业务系统的几个模块使用。

ruanchengping avatar Nov 02 '17 09:11 ruanchengping

在spring 里面增加 <security:intercept-url pattern="/test.html**" access="permitAll" />

    <security:intercept-url pattern="/bi.html**" access="permitAll" />
    <security:intercept-url pattern="/org/**" access="permitAll" />
    <security:intercept-url pattern="/org/cboard/**" access="permitAll" />
    <security:intercept-url pattern="/org/cboard/**/**" access="permitAll" />
    <security:intercept-url pattern="/org/cboard/**/**/**" access="permitAll" />
    <security:intercept-url pattern="/org/cboard/**/**/**/**" access="permitAll" />
    
    <security:intercept-url pattern="/admin/**" access="permitAll" />
    <security:intercept-url pattern="/commons/**" access="permitAll" />
    
    <security:intercept-url pattern="/dashboard/**" access="permitAll" />
    <security:intercept-url pattern="/i18n/**/**" access="permitAll" />
     

security:headers <security:frame-options policy="SAMEORIGIN"/> </security:headers>

复制starter.html 修改为bi.html作为iframe页面嵌入到业务系统里面

jiasudu8080 avatar Jan 14 '18 15:01 jiasudu8080

具体写在哪个配置文件里啊?

CHOSEN111111 avatar Mar 27 '18 13:03 CHOSEN111111

可以直接修改 src\main\resources\spring-security-jdbc.xml 文件,在 security:http 这个元素内部添加一个子元素

<security:headers>
            <security:frame-options disabled="true"/>
</security:headers>

修改后的文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:security="http://www.springframework.org/schema/security"
       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-4.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-4.1.xsd">

    <security:http auto-config="true">
        <security:intercept-url pattern="/lib/**" access="permitAll"/>
        <security:intercept-url pattern="/dist/**" access="permitAll"/>
        <security:intercept-url pattern="/bootstrap/**" access="permitAll"/>
        <security:intercept-url pattern="/plugins/**" access="permitAll"/>
        <security:intercept-url pattern="/js/**" access="permitAll"/>
        <security:intercept-url pattern="/login**" access="permitAll"/>
        <security:intercept-url pattern="/css/**" access="permitAll"/>
        <security:intercept-url pattern="/fonts/**" access="permitAll"/>
        <security:intercept-url pattern="/bi.html**" access="permitAll" />
        <security:intercept-url pattern="/org/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**/**" access="permitAll" />

        <security:intercept-url pattern="/admin/**" access="permitAll" />
        <security:intercept-url pattern="/commons/**" access="permitAll" />
        <security:intercept-url pattern="/favicon.ico" access="permitAll" />

        <security:intercept-url pattern="/dashboard/**" access="permitAll" />
        <security:intercept-url pattern="/i18n/**/**" access="permitAll" />
        <security:intercept-url pattern="/**" access="!anonymous"/>
        <security:form-login login-page="/login.do" username-parameter="username" password-parameter="password"
                             default-target-url="/starter.html" always-use-default-target="true"/>
        <security:logout logout-url="/j_spring_cas_security_logout"/>
        <security:remember-me remember-me-parameter="remember_me"/>
        <security:csrf disabled="true"/>
        <security:headers>
            <security:frame-options disabled="true"/>
        </security:headers>
    </security:http>

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider ref="shareAuthenticationProviderDecorator"/>
    </security:authentication-manager>

    <bean id="shareAuthenticationProviderDecorator" class="org.cboard.security.service.ShareAuthenticationProviderDecorator">
        <property name="authenticationProvider" ref="daoAuthenticationProvider"/>
    </bean>

    <bean id="daoAuthenticationProvider"
          class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
        <property name="userDetailsService">
            <ref bean="userDetailsService"/>
        </property>
        <property name="passwordEncoder">
            <ref bean="passwordEncoder"/>
        </property>
    </bean>

    <bean id="userDetailsService"
          class="org.cboard.security.service.DbUserDetailService">
        <property name="dataSource" ref="dataSource">
        </property>
        <property name="authoritiesByUsernameQuery">
            <value>
                <![CDATA[SELECT login_name username, 'admin' AS authority
                           FROM dashboard_user
                          WHERE login_name = ?
                         ]]>
            </value>
        </property>
        <property name="usersByUsernameQuery">
            <value>
                <![CDATA[SELECT user_id,user_name,login_name, user_password, 1 AS enabled
                           FROM dashboard_user
                          WHERE login_name = ? ]]>
            </value>
        </property>
    </bean>

    <bean id="passwordEncoder"
          class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>

    <bean id="dbAuthenticationService"
          class="org.cboard.security.service.DefaultAuthenticationService"/>

</beans>

ljyf5593 avatar Dec 12 '18 00:12 ljyf5593

可以直接修改src \ main \ resources \ spring-security-jdbc.xml文件,在 security:http这个元素内部添加一个子元素

<security:headers>
            <security:frame-options disabled="true"/>
</security:headers>

修改后的文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:security="http://www.springframework.org/schema/security"
       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-4.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-4.1.xsd">

    <security:http auto-config="true">
        <security:intercept-url pattern="/lib/**" access="permitAll"/>
        <security:intercept-url pattern="/dist/**" access="permitAll"/>
        <security:intercept-url pattern="/bootstrap/**" access="permitAll"/>
        <security:intercept-url pattern="/plugins/**" access="permitAll"/>
        <security:intercept-url pattern="/js/**" access="permitAll"/>
        <security:intercept-url pattern="/login**" access="permitAll"/>
        <security:intercept-url pattern="/css/**" access="permitAll"/>
        <security:intercept-url pattern="/fonts/**" access="permitAll"/>
        <security:intercept-url pattern="/bi.html**" access="permitAll" />
        <security:intercept-url pattern="/org/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**/**" access="permitAll" />

        <security:intercept-url pattern="/admin/**" access="permitAll" />
        <security:intercept-url pattern="/commons/**" access="permitAll" />
        <security:intercept-url pattern="/favicon.ico" access="permitAll" />

        <security:intercept-url pattern="/dashboard/**" access="permitAll" />
        <security:intercept-url pattern="/i18n/**/**" access="permitAll" />
        <security:intercept-url pattern="/**" access="!anonymous"/>
        <security:form-login login-page="/login.do" username-parameter="username" password-parameter="password"
                             default-target-url="/starter.html" always-use-default-target="true"/>
        <security:logout logout-url="/j_spring_cas_security_logout"/>
        <security:remember-me remember-me-parameter="remember_me"/>
        <security:csrf disabled="true"/>
        <security:headers>
            <security:frame-options disabled="true"/>
        </security:headers>
    </security:http>

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider ref="shareAuthenticationProviderDecorator"/>
    </security:authentication-manager>

    <bean id="shareAuthenticationProviderDecorator" class="org.cboard.security.service.ShareAuthenticationProviderDecorator">
        <property name="authenticationProvider" ref="daoAuthenticationProvider"/>
    </bean>

    <bean id="daoAuthenticationProvider"
          class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
        <property name="userDetailsService">
            <ref bean="userDetailsService"/>
        </property>
        <property name="passwordEncoder">
            <ref bean="passwordEncoder"/>
        </property>
    </bean>

    <bean id="userDetailsService"
          class="org.cboard.security.service.DbUserDetailService">
        <property name="dataSource" ref="dataSource">
        </property>
        <property name="authoritiesByUsernameQuery">
            <value>
                <![CDATA[SELECT login_name username, 'admin' AS authority
                           FROM dashboard_user
                          WHERE login_name = ?
                         ]]>
            </value>
        </property>
        <property name="usersByUsernameQuery">
            <value>
                <![CDATA[SELECT user_id,user_name,login_name, user_password, 1 AS enabled
                           FROM dashboard_user
                          WHERE login_name = ? ]]>
            </value>
        </property>
    </bean>

    <bean id="passwordEncoder"
          class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>

    <bean id="dbAuthenticationService"
          class="org.cboard.security.service.DefaultAuthenticationService"/>

</beans>

然后需要怎么办呢?能再说说嘛?

C3Stones avatar Dec 26 '18 07:12 C3Stones

@ljyf5593 想请教一下,按您的配置文件修改后,好像是直接放通了这些页面的安全认证。那么Dashboard等资源的分用户授权有没有实现? 因为原本Cboard是按用户权限查看各类资源的。业务系统的授权如何与Cboard对接? 请指点一下吗

zhouxiujue avatar Dec 27 '18 08:12 zhouxiujue

可以直接修改 src\main\resources\spring-security-jdbc.xml 文件,在 security:http 这个元素内部添加一个子元素

<security:headers>
            <security:frame-options disabled="true"/>
</security:headers>

修改后的文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:security="http://www.springframework.org/schema/security"
       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-4.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-4.1.xsd">

    <security:http auto-config="true">
        <security:intercept-url pattern="/lib/**" access="permitAll"/>
        <security:intercept-url pattern="/dist/**" access="permitAll"/>
        <security:intercept-url pattern="/bootstrap/**" access="permitAll"/>
        <security:intercept-url pattern="/plugins/**" access="permitAll"/>
        <security:intercept-url pattern="/js/**" access="permitAll"/>
        <security:intercept-url pattern="/login**" access="permitAll"/>
        <security:intercept-url pattern="/css/**" access="permitAll"/>
        <security:intercept-url pattern="/fonts/**" access="permitAll"/>
        <security:intercept-url pattern="/bi.html**" access="permitAll" />
        <security:intercept-url pattern="/org/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**" access="permitAll" />
        <security:intercept-url pattern="/org/cboard/**/**/**/**" access="permitAll" />

        <security:intercept-url pattern="/admin/**" access="permitAll" />
        <security:intercept-url pattern="/commons/**" access="permitAll" />
        <security:intercept-url pattern="/favicon.ico" access="permitAll" />

        <security:intercept-url pattern="/dashboard/**" access="permitAll" />
        <security:intercept-url pattern="/i18n/**/**" access="permitAll" />
        <security:intercept-url pattern="/**" access="!anonymous"/>
        <security:form-login login-page="/login.do" username-parameter="username" password-parameter="password"
                             default-target-url="/starter.html" always-use-default-target="true"/>
        <security:logout logout-url="/j_spring_cas_security_logout"/>
        <security:remember-me remember-me-parameter="remember_me"/>
        <security:csrf disabled="true"/>
        <security:headers>
            <security:frame-options disabled="true"/>
        </security:headers>
    </security:http>

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider ref="shareAuthenticationProviderDecorator"/>
    </security:authentication-manager>

    <bean id="shareAuthenticationProviderDecorator" class="org.cboard.security.service.ShareAuthenticationProviderDecorator">
        <property name="authenticationProvider" ref="daoAuthenticationProvider"/>
    </bean>

    <bean id="daoAuthenticationProvider"
          class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
        <property name="userDetailsService">
            <ref bean="userDetailsService"/>
        </property>
        <property name="passwordEncoder">
            <ref bean="passwordEncoder"/>
        </property>
    </bean>

    <bean id="userDetailsService"
          class="org.cboard.security.service.DbUserDetailService">
        <property name="dataSource" ref="dataSource">
        </property>
        <property name="authoritiesByUsernameQuery">
            <value>
                <![CDATA[SELECT login_name username, 'admin' AS authority
                           FROM dashboard_user
                          WHERE login_name = ?
                         ]]>
            </value>
        </property>
        <property name="usersByUsernameQuery">
            <value>
                <![CDATA[SELECT user_id,user_name,login_name, user_password, 1 AS enabled
                           FROM dashboard_user
                          WHERE login_name = ? ]]>
            </value>
        </property>
    </bean>

    <bean id="passwordEncoder"
          class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"/>

    <bean id="dbAuthenticationService"
          class="org.cboard.security.service.DefaultAuthenticationService"/>

</beans>

这样配置前提还是要登录吗?如何免登陆访问呢?

fanslin avatar Jan 24 '19 11:01 fanslin