Example usage for org.apache.shiro.subject Subject isAuthenticated

List of usage examples for org.apache.shiro.subject Subject isAuthenticated

Introduction

In this page you can find the example usage for org.apache.shiro.subject Subject isAuthenticated.

Prototype

boolean isAuthenticated();

Source Link

Document

Returns true if this Subject/user proved their identity during their current session by providing valid credentials matching those known to the system, false otherwise.

Usage

From source file:Homework4ShiroCommandLineClient.java

/**
 * @param args/*w  ww.  java2 s .c  o m*/
 */
public static void main(String[] args) {
    log.info("My First Apache Shiro Application");

    Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
    SecurityManager securityManager = factory.getInstance();
    SecurityUtils.setSecurityManager(securityManager);

    Subject currentUser = SecurityUtils.getSubject();

    Session session = currentUser.getSession();
    session.setAttribute("someKey", "aValue");
    String value = (String) session.getAttribute("someKey");
    if (value.equals("aValue")) {
        log.info("Retrieved the correct value! [" + value + "]");
    }

    // let's login the current user so we can check against roles and permissions:
    if (!currentUser.isAuthenticated()) {
        UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa");
        token.setRememberMe(true);
        try {
            currentUser.login(token);
        } catch (UnknownAccountException uae) {
            log.info("There is no user with username of " + token.getPrincipal());
        } catch (IncorrectCredentialsException ice) {
            log.info("Password for account " + token.getPrincipal() + " was incorrect!");
        } catch (LockedAccountException lae) {
            log.info("The account for username " + token.getPrincipal() + " is locked.  "
                    + "Please contact your administrator to unlock it.");
        }
        // ... catch more exceptions here (maybe custom ones specific to your application?
        catch (AuthenticationException ae) {
            //unexpected condition?  error?
        }
    }

    log.info("User [" + currentUser.getPrincipal() + "] logged in successfully.");

    if (currentUser.hasRole("schwartz")) {
        log.info("May the Schwartz be with you!");
    } else {
        log.info("Hello, mere mortal.");
    }

    if (currentUser.isPermitted("lightsaber:weild")) {
        log.info("You may use a lightsaber ring.  Use it wisely.");
    } else {
        log.info("Sorry, lightsaber rings are for schwartz masters only.");
    }

    if (currentUser.isPermitted("winnebago:drive:eagle5")) {
        log.info("You are permitted to 'drive' the winnebago with license plate (id) 'eagle5'.  "
                + "Here are the keys - have fun!");
    } else {
        log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!");
    }

    currentUser.logout();

    System.exit(0);
}

From source file:Tutorial.java

public static void main(String[] args) {
    log.info(// ww  w .  j a  v a2  s .c o m
            "\n\n\n\t\t\t**************************************************\n\t\t\t\tMy First Apache Shiro Application\n\t\t\t**************************************************\n");

    Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
    //Factory<SecurityManager> factory = new IniSecurityManagerFactory("file:src/main/webapp/WEB-INF/shiro.ini");
    SecurityManager securityManager = factory.getInstance();
    SecurityUtils.setSecurityManager(securityManager);

    // get the currently executing user:
    Subject currentUser = SecurityUtils.getSubject();

    // Do some stuff with a Session (no need for a web or EJB container!!!)
    Session session = currentUser.getSession();
    session.setAttribute("someKey", "aValue");
    String value = (String) session.getAttribute("someKey");
    if (value.equals("aValue")) {
        log.info("Retrieved the correct value! [" + value + "]");
    }

    // let's login the current user so we can check against roles and permissions:
    if (!currentUser.isAuthenticated()) {
        UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa");
        token.setRememberMe(true);
        try {
            currentUser.login(token);
        } catch (UnknownAccountException uae) {
            log.info("There is no user with username of " + token.getPrincipal());
        } catch (IncorrectCredentialsException ice) {
            log.info("Password for account " + token.getPrincipal() + " was incorrect!");
        } catch (LockedAccountException lae) {
            log.info("The account for username " + token.getPrincipal() + " is locked.  "
                    + "Please contact your administrator to unlock it.");
        }
        // ... catch more exceptions here (maybe custom ones specific to your application?
        catch (AuthenticationException ae) {
            //unexpected condition?  error?
        }
    }

    //say who they are:
    //print their identifying principal (in this case, a username):
    log.info("User [" + currentUser.getPrincipal() + "] logged in successfully.");

    //test a role:
    if (currentUser.hasRole("schwartz")) {
        log.info("May the Schwartz be with you!");
    } else {
        log.info("Hello, mere mortal.");
    }

    //test a typed permission (not instance-level)
    if (currentUser.isPermitted("lightsaber:weild")) {
        log.info("You may use a lightsaber ring.  Use it wisely.");
    } else {
        log.info("Sorry, lightsaber rings are for schwartz masters only.");
    }

    //a (very powerful) Instance Level permission:
    if (currentUser.isPermitted("winnebago:drive:eagle5")) {
        log.info("You are permitted to 'drive' the winnebago with license plate (id) 'eagle5'.  "
                + "Here are the keys - have fun!");
    } else {
        log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!");
    }

    //all done - log out!
    currentUser.logout();
    log.info("User Logged out successfully!!");

    System.exit(0);
}

From source file:QuickstartGuice.java

License:Apache License

public static void main(String[] args) {

    // We will utilize standard Guice bootstrapping to create a Shiro SecurityManager.
    Injector injector = Guice.createInjector(new QuickstartShiroModule());
    SecurityManager securityManager = injector.getInstance(SecurityManager.class);

    // for this simple example quickstart, make the SecurityManager
    // accessible as a JVM singleton.  Most applications wouldn't do this
    // and instead rely on their container configuration or web.xml for
    // webapps.  That is outside the scope of this simple quickstart, so
    // we'll just do the bare minimum so you can continue to get a feel
    // for things.
    SecurityUtils.setSecurityManager(securityManager);

    // Now that a simple Shiro environment is set up, let's see what you can do:

    // get the currently executing user:
    Subject currentUser = SecurityUtils.getSubject();

    // Do some stuff with a Session (no need for a web or EJB container!!!)
    Session session = currentUser.getSession();
    session.setAttribute("someKey", "aValue");
    String value = (String) session.getAttribute("someKey");
    if (value.equals("aValue")) {
        log.info("Retrieved the correct value! [" + value + "]");
    }/*  w w  w .  java 2s .c  o  m*/

    // let's login the current user so we can check against roles and permissions:
    if (!currentUser.isAuthenticated()) {
        UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa");
        token.setRememberMe(true);
        try {
            currentUser.login(token);
        } catch (UnknownAccountException uae) {
            log.info("There is no user with username of " + token.getPrincipal());
        } catch (IncorrectCredentialsException ice) {
            log.info("Password for account " + token.getPrincipal() + " was incorrect!");
        } catch (LockedAccountException lae) {
            log.info("The account for username " + token.getPrincipal() + " is locked.  "
                    + "Please contact your administrator to unlock it.");
        }
        // ... catch more exceptions here (maybe custom ones specific to your application?
        catch (AuthenticationException ae) {
            //unexpected condition?  error?
        }
    }

    //say who they are:
    //print their identifying principal (in this case, a username):
    log.info("User [" + currentUser.getPrincipal() + "] logged in successfully.");

    //test a role:
    if (currentUser.hasRole("schwartz")) {
        log.info("May the Schwartz be with you!");
    } else {
        log.info("Hello, mere mortal.");
    }

    //test a typed permission (not instance-level)
    if (currentUser.isPermitted("lightsaber:weild")) {
        log.info("You may use a lightsaber ring.  Use it wisely.");
    } else {
        log.info("Sorry, lightsaber rings are for schwartz masters only.");
    }

    //a (very powerful) Instance Level permission:
    if (currentUser.isPermitted("winnebago:drive:eagle5")) {
        log.info("You are permitted to 'drive' the winnebago with license plate (id) 'eagle5'.  "
                + "Here are the keys - have fun!");
    } else {
        log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!");
    }

    //all done - log out!
    currentUser.logout();

    System.exit(0);
}

From source file:$.AuthRS.java

License:Open Source License

@GET
    @Path("/islogged")
    @Produces(MediaType.APPLICATION_JSON)
    public Map<String, Object> isLogguedIn() {
        System.out.println("======== Is Logged IN");
        Map<String, Object> root = new HashMap<String, Object>();
        Subject _subject = null;

        boolean loggedIn = false;
        try {/*w ww. j  av  a2s  . c o  m*/
            _subject = SecurityUtils.getSubject();
            loggedIn = _subject.isAuthenticated();

        } catch (Exception e) {
            loggedIn = false;
        }

        if (loggedIn) {
            PermissionManager pm = new PermissionManager(permisoBC.findAllKeys());
            root.put("success", true);
            root.put("username", _subject.getPrincipal());
            root.put("permissions", pm.getJsonPermissions(_subject));
        } else {
            root.put("success", false);
        }

        return root;
    }

From source file:$.SecurityInterceptor.java

License:Open Source License

@Override
    public void filter(ContainerRequestContext requestContext) {
        ResourceMethodInvoker methodInvoker = (ResourceMethodInvoker) requestContext
                .getProperty("org.jboss.resteasy.core.ResourceMethodInvoker");
        Method method = methodInvoker.getMethod();

        Subject subject = SecurityUtils.getSubject();

        if (!subject.isAuthenticated() && method.isAnnotationPresent(RequiresAuthentication.class)) {
            //throw new UnauthenticatedException("Authentication required");
            requestContext.abortWith(ACCESS_DENIED);
        }/*from w ww . jav a 2 s.  c o m*/

        if (subject.getPrincipal() != null && method.isAnnotationPresent(RequiresGuest.class)) {
            //throw new UnauthenticatedException("Guest required");
            requestContext.abortWith(ACCESS_DENIED);
        }

        if (subject.getPrincipal() == null && method.isAnnotationPresent(RequiresUser.class)) {
            // throw new UnauthenticatedException("User required");
            requestContext.abortWith(ACCESS_DENIED);
        }

        RequiresRoles roles = method.getAnnotation(RequiresRoles.class);

        if (roles != null) {
            subject.checkRoles(Arrays.asList(roles.value()));
        }

        RequiresPermissions permissions = method.getAnnotation(RequiresPermissions.class);

        if (permissions != null) {
            try {
                subject.checkPermissions(permissions.value());
            } catch (AuthorizationException e) {
                //e.printStackTrace();
                //requestContext.abortWith(SERVER_ERROR);
                requestContext.abortWith(ACCESS_DENIED);
                return;
            }

        }

    }

From source file:annis.service.internal.AdminService.java

License:Apache License

@GET
@Path("is-authenticated")
@Produces("text/plain")
public String isAuthenticated() {
    Subject user = SecurityUtils.getSubject();

    return Boolean.toString(user.isAuthenticated());
}

From source file:annis.service.internal.AdminServiceImpl.java

License:Apache License

@GET
@Path("is-authenticated")
@Produces("text/plain")
public Response isAuthenticated() {
    Subject user = SecurityUtils.getSubject();
    Object principal = user.getPrincipal();
    if (principal instanceof String) {
        // if a use has an expired account it won't have it's own name as role
        boolean hasOwnRole = user.hasRole((String) principal);
        if (!hasOwnRole) {
            return Response.status(Response.Status.FORBIDDEN).entity("Account expired").build();
        }//from  ww  w. j  a v a  2 s .com
    }

    return Response.ok(Boolean.toString(user.isAuthenticated())).build();
}

From source file:at.pollux.thymeleaf.shiro.dialect.test.ShiroDialectTest.java

License:Apache License

@Test
public void testAuthenticated() {
    Subject subjectUnderTest = new Subject.Builder(getSecurityManager()).buildSubject();
    setSubject(subjectUnderTest);/* w w  w. ja  v a 2s . co  m*/

    Context context = new Context();
    String result;

    // Guest user
    result = templateEngine.process(TEST_TEMPLATE_PATH, context);
    assertFalse(subjectUnderTest.isAuthenticated()); // sanity
    assertFalse(result.contains("shiro:"));
    assertFalse(result.contains("ISAUTHENTICATED1"));
    assertFalse(result.contains("ISAUTHENTICATED2"));

    // Logged in user
    subjectUnderTest.login(new UsernamePasswordToken(USER1, PASS1));
    assertTrue(subjectUnderTest.isAuthenticated()); // sanity
    result = templateEngine.process(TEST_TEMPLATE_PATH, context);
    assertFalse(result.contains("shiro:"));
    assertTrue(result.contains("ISAUTHENTICATED1"));
    assertTrue(result.contains("ISAUTHENTICATED2"));
    subjectUnderTest.logout();

    // Remembered user
    //TODO:
}

From source file:at.pollux.thymeleaf.shiro.dialect.test.ShiroDialectTest.java

License:Apache License

@Test
public void testNotAuthenticated() {
    Subject subjectUnderTest = new Subject.Builder(getSecurityManager()).buildSubject();
    setSubject(subjectUnderTest);/*from  w  w  w  .java2 s  .c  o  m*/

    Context context = new Context();
    String result;

    // Guest user
    result = templateEngine.process(TEST_TEMPLATE_PATH, context);
    assertFalse(subjectUnderTest.isAuthenticated()); // sanity
    assertFalse(result.contains("shiro:"));
    assertTrue(result.contains("NOTAUTHENTICATED1"));
    assertTrue(result.contains("NOTAUTHENTICATED2"));

    // Logged in user
    subjectUnderTest.login(new UsernamePasswordToken(USER1, PASS1));
    assertTrue(subjectUnderTest.isAuthenticated()); // sanity
    result = templateEngine.process(TEST_TEMPLATE_PATH, context);
    assertFalse(result.contains("shiro:"));
    assertFalse(result.contains("NOTAUTHENTICATED1"));
    assertFalse(result.contains("NOTAUTHENTICATED2"));
    subjectUnderTest.logout();

    // Remembered user
    //TODO:
}

From source file:au.org.theark.admin.web.menu.AdminTabProviderImpl.java

License:Open Source License

public ITab createTab(String tabName) {
    return new ArkMainTab(new Model<String>(tabName)) {

        private static final long serialVersionUID = -5063032622932238615L;

        @Override/*from w ww. j  a  va  2s.com*/
        public Panel getPanel(String pid) {
            // The sub menu(s) for Admin
            return new AdminSubMenuTab(pid);
        }

        public boolean isAccessible() {
            return true;
        }

        public boolean isVisible() {
            boolean flag = false;
            SecurityManager securityManager = ThreadContext.getSecurityManager();
            Subject currentUser = SecurityUtils.getSubject();

            // Only a Super Administrator can see the Admin tab/menu
            if (securityManager.hasRole(currentUser.getPrincipals(),
                    au.org.theark.core.security.RoleConstants.ARK_ROLE_SUPER_ADMINISTATOR)) {
                flag = currentUser.isAuthenticated();
            } else {
                flag = false;
            }
            return flag;
        }
    };
}