Example usage for org.apache.shiro.authz.permission InvalidPermissionStringException InvalidPermissionStringException

List of usage examples for org.apache.shiro.authz.permission InvalidPermissionStringException InvalidPermissionStringException

Introduction

In this page you can find the example usage for org.apache.shiro.authz.permission InvalidPermissionStringException InvalidPermissionStringException.

Prototype

public InvalidPermissionStringException(String message, String permissionString) 

Source Link

Document

Constructs a new exception with the given message and permission string.

Usage

From source file:com.caricah.iotracah.bootstrap.security.realm.auth.permission.IOTPermission.java

License:Apache License

protected void setParts(String wildcardString) {
    if (Objects.isNull(wildcardString) || wildcardString.trim().isEmpty()) {
        throw new InvalidPermissionStringException("string cannot be null or empty.", wildcardString);
    }/*from   w  ww .j  av a 2 s.  c  o  m*/

    wildcardString = wildcardString.trim();

    int indexOfColon = wildcardString.indexOf(":");

    if (indexOfColon < 0) {
        throw new IllegalArgumentException("Client permission must be prefixed with the permission type.");
    }

    setType(wildcardString.substring(0, indexOfColon));

    wildcardString = wildcardString.substring(indexOfColon + 1);

    if (wildcardString.trim().isEmpty()) {
        throw new InvalidPermissionStringException("string cannot be null or empty.", wildcardString);
    }

    if (wildcardString.contains(PART_DIVIDER_TOKEN + PART_DIVIDER_TOKEN)
            || wildcardString.endsWith(PART_DIVIDER_TOKEN)) {
        throw new InvalidPermissionStringException(
                "permission string cannot" + " contain parts with only dividers. Make sure permission strings"
                        + " are properly formatted ",
                wildcardString);

    }

    if (wildcardString.isEmpty()) {
        throw new IllegalArgumentException(
                "Client permission string cannot contain only dividers. Make sure permission strings are properly formatted.");
    }

    this.parts = Arrays.asList(wildcardString.split(Pattern.quote(PART_DIVIDER_TOKEN)));

}