While building a full-fledged web project is greatly leveraged by Liferay, it might so happen that we require to access some API method before the user is authenticated, where a common example could be a custom login hook. In the normal scenario, such method access would generate a security exception. In such cases we have to explicitly expose the method for guest access, which can be achieved simply by adding an annotation above the method definition in the implementing class for that method, like so:

public class MyClassServiceImpl extends MyClassServiceBaseImpl {

@AccessControlled(guestAccessEnabled=true)         /*To make this method 

                                                   accessible without logging in*/

    public int methodOne() throws PortalException, SystemException

    {

       //Do something

       return resultOne;

    }

    public int methodTwo() throws PortalException, SystemException /*Method not accessible

                                                                           unauthenticated*/

    {

       //Do something else

       return resultTwo;

    }

}