Here is how i did it...

*created a spring-config application-security.xml*

/"<http create-session="ifRequired" auto-config="true">
        <remember-me/>
                <intercept-url pattern="/**" 
access="IS_AUTHENTICATED_ANONYMOUSLY" />
        </http>

    <authentication-manager alias="authenticationManager" >
        <authentication-provider user-service-ref="userDetailsService"/>
    </authentication-manager>

    <global-method-security secured-annotations="enabled" />
"/

*in web.xml add the following lines:*

    /
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
       
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
/

*in spring-config.xml*

/
  <bean id="userDetailsService"
class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="proxyInterfaces"
value="security.service.UserDetailsService"/>
        <property name="target">
            <bean class="security.service.UserDetailsServiceImpl">
                <property name="userDao" ref="userDetailDao"/>
            </bean>
        </property>
    </bean>

   <bean id="userDetailsService"
class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="proxyInterfaces"
value="security.service.UserDetailsService"/>
        <property name="target">
            <bean class="security.service.impl.UserDetailsServiceImpl">
                <property name="userDao" ref="userDetailDao"/>
            </bean>
        </property>
    </bean>
/

*Add following annotation on pages you want to secure:*

/@AuthorizeInstantiation("ROLE_ADMIN")/ // for users replace ROLE_ADMIN with
USER_ROLE

Create a UserDetailsService class:

/public interface UserDetailsService extends
org.springframework.security.core.userdetails.UserDetailsService {

    public void RegisterUser(UserDetail userDetail);

    public UserDetail loadUserByEmail(String emailAddress);

    public void deleteUserVerification(UserVerification userVerification);

    public void deleteUser(UserDetail userDetail);

    public void verifyUser(UserDetail userDetail);

    public UserDetail getByUsername(String username);
}/

*Create UserDetailServiceImpl class:*

/public class UserDetailsServiceImpl implements UserDetailsService {

    private UserDetailDAO userDao;

    @Override
    public UserDetails loadUserByUsername(String s) throws
UsernameNotFoundException, DataAccessException {
        return userDao.getUserDetail(s);
    }

    @Override
    public UserDetail loadUserByEmail(String emailAddress) {
        return userDao.getUserByEmail(emailAddress);
    }

    @Override
    public void deleteUserVerification(UserVerification userVerification) {
        userDao.deleteUserVerification(userVerification);
    }

    public UserDetailDAO getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDetailDAO userDao) {
        this.userDao = userDao;
    }

    public void RegisterUser(UserDetail userDetail) {
        userDao.saveUserDetail(userDetail);
    }

    public void deleteUser(UserDetail userDetail) {
        userDao.deleteUserDetail(userDetail);
    }

    public void verifyUser(UserDetail userDetail) {
        userDetail.setEnabled(true);
        userDetail.setLocked(false);
        userDetail.setCredentialsExpired(false);
        userDetail.setExpired(false);
        userDetail.setAccountStatus(UserAccountStatus.VERIFIED);
        List<UserVerification> userVerificationList =
userDetail.getUserVerification();
        UserVerification userVerification = userVerificationList.get(0);
        userDetail.getUserVerification().remove(0);
        userDao.updateUserDetail(userDetail);
        userDao.deleteUserVerification(userVerification);

    }

    public UserDetail getUser(String username) {
        return userDao.getByUsername(username);
    }

    @Override
    public UserDetail getByUsername(String username) {
        return userDao.getByUsername(username);
    }
}/

*Create class UserVerification:*

/@Entity
@Table(name = "userverification",
        uniqueConstraints = {@UniqueConstraint(columnNames = {"userid"})}
)
public class UserVerification extends BasicEntity implements Serializable {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "userid", referencedColumnName = "id", insertable =
true, nullable = false, updatable = true)
    private UserDetail userDetail;

    private String verificationCode;

    public UserVerification() {
    }

    public UserVerification(String verificationCode) {
        this.verificationCode = verificationCode;
    }

    public UserVerification(UserDetail userDetail, String verificationCode)
{
        this.userDetail = userDetail;
        this.verificationCode = verificationCode;
    }

    public UserDetail getUserDetail() {
        return userDetail;
    }

    public void setUserDetail(UserDetail userDetail) {
        this.userDetail = userDetail;
    }

    public String getVerificationCode() {
        return verificationCode;
    }

    public void setVerificationCode(String verificationCode) {
        this.verificationCode = verificationCode;
    }
}/

*Create UserDetails object:*

/@Entity
@Table(name = "userdetails",
        uniqueConstraints = {@UniqueConstraint(columnNames = {"username",
"emailaddress"})}
)
public class UserDetail extends BasicEntity implements UserDetails {

    private String userName;
    private String password;
    private String emailAddress;
    private Timestamp accountCreatedDate;
    private Timestamp lastActivityDate;
    private boolean keepLoggedIn;
......
.....
....
..
}/

*Role object:*

/@Entity
@Table(name = "Roles", uniqueConstraints = {@UniqueConstraint(columnNames =
{"role"})})
public class Role extends BasicEntity implements GrantedAuthority {

    private String role;
....
......
.....
...
..
}/


This is all you need to get started... Hope this helps...

-Milton


Martin Grigorov-4 wrote
> 
> See https://github.com/jwcarman/Wicketopia
> 
> On Sun, Jan 15, 2012 at 7:57 AM, Brian Lavender &lt;brian@&gt; wrote:
>> Does someone have a sample of the current spring security with Wicket
>> auth-roles?
>> One that I can do the following.
>>
>> mvn jetty:run
>>
>> and see it run?
>>
>> brian
>> --
>> Brian Lavender
>> http://www.brie.com/brian/
>>
>> "There are two ways of constructing a software design. One way is to
>> make it so simple that there are obviously no deficiencies. And the other
>> way is to make it so complicated that there are no obvious deficiencies."
>>
>> Professor C. A. R. Hoare
>> The 1980 Turing award lecture
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@.apache
>> For additional commands, e-mail: users-help@.apache
>>
> 
> 
> 
> -- 
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@.apache
> For additional commands, e-mail: users-help@.apache
> 


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Wicket-spring-security-sample-app-tp4296338p4298233.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to