[saiku] 免登陸進入管理后台


 

上一篇分析了介紹了如何簡化和修改saiku的界面【http://www.cnblogs.com/avivaye/p/4877882.html】

這一篇說明下如何去掉免登陸進入saiku 管理台

 

1、修改applicationContext-saiku-webapp.xml

<security:intercept-url pattern="/rest/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
<security:intercept-url pattern="/json/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />

 

2、在saiku-beans.xml中添加allowAnonymous屬性

<bean id="sessionService" class="org.saiku.web.service.SessionService">
  <property name="authenticationManager" ref="authenticationManager" />
  <property name="allowAnonymous" value="true" />
</bean>

 

解釋:

 

① saiku的接口服務是通過jersey來加載的,在web.xml中有如下的配置

掃描的包:org.saiku.web 這個包下的rest服務接口在啟動時加載,訪問時加上路徑:/rest

<servlet>
  <servlet-name>jersey2</servlet-name>
  <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>org.saiku.web;com.fasterxml.jackson.jaxrs.json</param-value>
  </init-param>
  <init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>com.sun.jersey.config.feature.Trace</param-name>
    <param-value>true</param-value>
  </init-param>
  <init-param>
    <param-name>jaxrs.providers</param-name>
    <param-value>org.saiku.web.rest.SerializableProvider</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>jersey2</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

 

 

②  為 匹配到 路徑為:/rest/** 的路徑 設置權限  IS_AUTHENTICATED_ANONYMOUSLY

表示如果用戶是匿名用戶或者是已授權的用戶 就能夠擁有訪問rest服務的資格

 

③ 通過 在sessionService 注入 <property name="allowAnonymous" value="true" /> 

這樣用戶在調用login服務的時候,會判斷是否是匿名用戶,如果是匿名用戶,就調用createSession的方法創建session

這樣就實現了免登陸的匿名登錄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM