上一篇分析了介绍了如何简化和修改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
这样就实现了免登陆的匿名登录
时间: 2024-10-05 11:06:49