Hi ,

The only urls that are secured are

 [urls]
               /ipf/** = authcBasic

But your REST APIs seem to be at

<servlet-mapping>
        <servlet-name>ServletAdaptor</servlet-name>
        <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

Is it /rest/* that you need to secure ? If yes, then you might change
the ini config.

Manoj

On Mon, Oct 31, 2011 at 9:54 AM, Vampyress86
<[email protected]> wrote:
> I am new to both Spring and Shiro so please bear with me if I fail to word my
> problem correctly. I am developing a restful web service in Spring MVC and
> it is necessary to secure the system against unauthorised usage and my
> project manager wants to use Shiro as the solution. At the moment our
> primary concern is just a basic authentication system when a user performs
> an action upon a resource. I have been through multiple examples of setting
> up Shiro and none of them seem to work for my implementation and was
> wondering if it would be possible to recieve some guidance as to where I
> might be going wrong.
>
> My current web.xml implementation:
> /
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd";>
>
>         <filter>
>        <filter-name>ShiroFilter</filter-name>
>
> <filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class>
>        <init-param>
>            <param-name>config</param-name>
>            <param-value>
>
>                # The IniShiroFilter configuration is very powerful and
> flexible, while still remaining succinct.
>                # Please read the
> org.apache.shiro.web.servlet.IniShiroFilter JavaDoc for information.
>
>                # Quick Tip: Instead of having this configuration here in
> web.xml, you can instead
>                # move all of this to a 'shiro.ini' file at the root of the
> classpath and remove
>                # the 'config' init-param. Or you can specify the
> 'configPath' init-param and specify the
>                # path to a resource at any location (url, file or
> classpath). This may be desired if the
>                # config gets long and you want to keep web.xml clean.
>
>                [users]
>                # format: username = password, role1, role2, ..., roleN
>                root = secret,admin
>                guest = guest,guest
>                presidentskroob = 12345,president,admin
>                darkhelmet = ludicrousspeed,darklord,schwartz
>                lonestarr = vespa,goodguy,schwartz
>
>                [roles]
>                # format; roleName = permission1, permission2, ...,
> permissionN
>                admin = *
>                schwartz = lightsaber:*
>                goodguy = winnebago:drive:eagle5
>
>                [urls]
>                /ipf/** = authcBasic
>
>            </param-value>
>        </init-param>
>    </filter>
>    <filter-mapping>
>        <filter-name>ShiroFilter</filter-name>
>        <url-pattern>/*</url-pattern>
>    </filter-mapping>
>    <servlet>
>        <servlet-name>ServletAdaptor</servlet-name>
>
> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
>        <load-on-startup>1</load-on-startup>
>    </servlet>
>    >    <session-config>
>        <session-timeout>
>            30
>        </session-timeout>
>    </session-config>
> </web-app>/
> ----------------------------------------------
> And my application context so you can getter a better understanding of the
> services general implementation:
> -----------------------------------------------
> /
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:context="http://www.springframework.org/schema/context";
> xmlns:tx="http://www.springframework.org/schema/tx";
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://www.springframework.org/schema/context
> http://www.springframework.org/schema/context/spring-context.xsd
> http://www.springframework.org/schema/tx
> http://www.springframework.org/schema/tx/spring-tx.xsd
> ">
>
>    <context:annotation-config />
>    <tx:annotation-driven />
>
>    <bean id="farmDAO" class="com.ipf.persistance.JpaFarmDAO" />
>    <bean id="farmerDAO" class="com.ipf.persistance.JpaFarmerDAO" />
>    <bean id="farmeradvisorDAO"
> class="com.ipf.persistance.JpaFarmerAdvisorDAO" />
>    <bean id="timingDAO" class="com.ipf.persistance.JpaTimingDAO" />
>    <bean id="varietyDAO" class="com.ipf.persistance.JpaVarietyDAO" />
>    <bean id="cropDAO" class="com.ipf.persistance.JpaCropDAO" />
>    <bean id="farmercropDAO" class="com.ipf.persistance.JpaFarmerCropDAO" />
>    <bean id="zoneDAO" class="com.ipf.persistance.JpaZoneDAO" />
>
>    <bean id="transactionManager"
> class="org.springframework.orm.jpa.JpaTransactionManager">
>        <property name="entityManagerFactory" ref="entityManagerFactory"/>
>        <property name="dataSource" ref="dataSource"/>
>    </bean>
>
>    <bean id="persistenceAnnotation"
> class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"
> />
>
>    <bean id="dataSource"
> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>        <property name="driverClassName" value="${db.driverClass}" />
>        <property name="url" value="${db.connectionURL}" />
>        <property name="username" value="${db.username}" />
>        <property name="password" value="${db.password}" />
>    </bean>
>
>    <bean id="entityManagerFactory"
>
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
>        <property name="dataSource" ref="dataSource" />
>        <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
>    </bean>
>
>    <bean id="jpaVendorAdapter"
>
> class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
>        <property name="database" value="POSTGRESQL" />
>        <property name="showSql" value="true"/>
>        <property name="generateDdl" value="false"/>
>        <property name="databasePlatform"
>        value="org.hibernate.dialect.PostgreSQLDialect" />
>    </bean>
>
> </beans>
> /
>
>
> -------------------------------------------------------
>
> The problem I am currently facing is that the resources are still available
> no matter what configuration option I use. I should also mention I have
> tried the method of including the ini data in a file and setting up Shiro
> through beans however the result remained the same. There are no compilation
> errors to indicate a problem but the login page I would expect is not
> available and resources are returned normally.
>
> I am curious as to whether I am totally barking up the wrong tree or if I am
> relatively close in how I am trying to progress.
>
> Thankyou for your time! :)
>
>
>
>
> --
> View this message in context: 
> http://shiro-user.582556.n2.nabble.com/Setting-up-Shiro-to-work-with-spring-and-Jersey-Jackson-tp6948893p6948893.html
> Sent from the Shiro User mailing list archive at Nabble.com.
>



-- 
http://khangaonkar.blogspot.com/

Reply via email to