Package com.skava.auth.web
Class UserAttributeController
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
com.skava.core.security.CommonExceptionHandler
com.skava.core.errorhandler.ExceptionResponseProcessor
com.skava.auth.helper.AuthExceptionHandler
com.skava.auth.web.UserAttributeController
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.context.MessageSourceAware
@RestController
@RequestMapping("/userattributes")
public class UserAttributeController
extends AuthExceptionHandler
This class act as a controller to handle the user's privilege attribute manipulation. List of operations are,
- Create user's privilege attribute
- Update user's privilege attribute
- Retrieve all user's privilege attribute
- Retrieve user's privilege attribute by attribute identifier
- Delete user's privilege attribute by attribute identifier
- Author:
- Infosys Equinox
-
Field Summary
FieldsFields inherited from class com.skava.auth.helper.AuthExceptionHandler
CONST_API_VERSION_DEFAULT, X_TOTAL_COUNT
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
logger, PAGE_NOT_FOUND_LOG_CATEGORY, pageNotFoundLogger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<Object>
createUserAttribute
(String version, String authToken, long storeId, UserAttributeVO request, Long collectionId, String locale) This service is used to create a privilege attribute for the given user identifiers.org.springframework.http.ResponseEntity<Object>
deleteUserAttribute
(String version, String authToken, long storeId, Long userattributeId, Long collectionId, String locale) This service is used to delete user's privilege attribute based on given user attribute identifier.org.springframework.http.ResponseEntity<Object>
getAllUserAttributes
(String version, String authToken, long storeId, int page, int size, String filter, Long collectionId, String locale) This service is used to retrieve the user's privilege attributes based on given search criteria with pagination parameters.org.springframework.http.ResponseEntity<Object>
getUserAttributeById
(String version, String authToken, long storeId, Long userattributeId, Long collectionId, String locale) This service is used to retrieve user's privilege attribute based on given attribute identifier.User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.org.springframework.http.ResponseEntity<Object>
updateUserAttribute
(String version, String authToken, long storeId, Long userattributeId, UserAttributeVO userAttributeDetails, Long collectionId, String locale) This service is used to update user's privilege attribute details based on user attribute identifier and user attribute details.Methods inherited from class com.skava.auth.helper.AuthExceptionHandler
getValidationResponse, handleAccessDeniedException, handleResourceNotFoundException, handleRunTimeException
Methods inherited from class com.skava.core.errorhandler.ExceptionResponseProcessor
getExceptionResponse, handleExceptionInternal, handleMethodArgumentNotValid
Methods inherited from class com.skava.core.security.CommonExceptionHandler
handleExceptionInternal, handleInternalException
Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler
createProblemDetail, createResponseEntity, getMessageSource, handleAsyncRequestNotUsableException, handleAsyncRequestTimeoutException, handleConversionNotSupported, handleErrorResponseException, handleException, handleHandlerMethodValidationException, handleHttpMediaTypeNotAcceptable, handleHttpMediaTypeNotSupported, handleHttpMessageNotReadable, handleHttpMessageNotWritable, handleHttpRequestMethodNotSupported, handleMaxUploadSizeExceededException, handleMethodValidationException, handleMissingPathVariable, handleMissingServletRequestParameter, handleMissingServletRequestPart, handleNoHandlerFoundException, handleNoResourceFoundException, handleServletRequestBindingException, handleTypeMismatch, setMessageSource
-
Field Details
-
DEFAULT_LIMIT
- See Also:
-
-
Constructor Details
-
UserAttributeController
public UserAttributeController()ConstructUserAttributeController
object with members.
-
-
Method Details
-
createUserAttribute
@PostMapping("") @ResponseStatus(CREATED) @PreAuthorize("hasRoleForServiceAndCollection(\'ROLE_AUTH_ADMIN\', \'auth\', #collectionId) or hasPrivilegeForServiceAndCollection(\'auth/create/userattributes\', \'auth\', #collectionId)") @Audit(action="createUserAttribute", repository="userAttributeRepository") public org.springframework.http.ResponseEntity<Object> createUserAttribute(@RequestHeader(value="x-version",required=false,defaultValue="8.19.7") @AuditField(field="VERSION") String version, @RequestHeader(value="x-auth-token",required=false) @AuditField(field="AUTH_TOKEN") String authToken, @RequestHeader(value="x-store-id",required=false,defaultValue="0") @AuditField(field="STORE_ID") long storeId, @RequestBody @AuditField(field="USER_ATTRIBUTE") UserAttributeVO request, @RequestHeader(value="X-Collection-Id",required=true,defaultValue="0") @AuditField(field="COLLECTION_ID") Long collectionId, @RequestHeader(value="locale",required=false,defaultValue="en_US") @AuditField(field="LOCALE") String locale) This service is used to create a privilege attribute for the given user identifiers. User Attribute is created based on the provided attribute value, user identifiers and privilege identifiers and also validate privilege identifiers. User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.- Parameters:
version
- It hold the value of version number of API. Using this parameter we can access the different version of the API. It is currently unused.authToken
- aString
object. This field holds a valid authorization token generated using the Authorization microservice for an user. Auth token (JWT format) represents claims containing roles and privileges of the user accessing this API. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. Since the token is a required field for this API it has to be generated before hand by invoking the /auth/sessions API provided by Authorization microservice. The output is three Base64 strings separated by dots that can be easily passed in HTML and HTTP environments, while being more compact when compared to XML-based standards such as SAML. Thus generated token has to be passed to this service and the request will be processed only if the following conditions are met:- Token validation against the secret key
- Expiry time should be in the future
- Necessary privileges are available for the user to perform the action on the subjected resource
storeId
- Refers to the unique identifier of the store.request
- aUserAttributeVO
object. This request body holds a valid user's privilege attribute of this microservice to create/update user's privilege attribute entity/resource's details. This end point only use the basic details of user's privilege attribute request.collectionId
- aLong
object. This field holds a valid collection identifier of this microservice and requested operation will be performed on this collection identifier. Collection is the top most entity of a microservice under which all the other entities/resources reside. Each collection represents an instance of the microservice with configured properties and these properties can be modified to bring in a different behavior per collection of the same microservice. Store association is the process of associating a microservice collection to a store along with its respective sub-entity. This way storefront can fetch/store the required information from that respective association.locale
- aString
object. API Response and error messages will be responded in the locale mentioned in this parameter. Locale needs to be mentioned in Java standard locale format.- Returns:
- a
UserAttributeVO
object. User Attribute which was created.
-
getAllUserAttributes
@GetMapping("") @PreAuthorize("hasRoleForServiceAndCollection(\'ROLE_AUTH_ADMIN\', \'auth\', #collectionId) or hasPrivilegeForServiceAndCollection(\'auth/viewall/userattributes\', \'auth\', #collectionId)") @Audit(action="getUserAttributes", repository="userAttributeRepository") public org.springframework.http.ResponseEntity<Object> getAllUserAttributes(@RequestHeader(value="x-version",required=false,defaultValue="8.19.7") @AuditField(field="VERSION") String version, @RequestHeader(value="x-auth-token",required=false) @AuditField(field="AUTH_TOKEN") String authToken, @RequestHeader(value="x-store-id",required=false,defaultValue="0") @AuditField(field="STORE_ID") long storeId, @RequestParam(value="offset",required=false,defaultValue="0") @AuditField(field="PAGE") int page, @RequestParam(value="limit",required=false,defaultValue="100") @AuditField(field="SIZE") int size, @RequestParam(value="filter",required=false) @AuditField(field="FILTER") String filter, @RequestHeader(value="X-Collection-Id",required=true,defaultValue="0") @AuditField(field="COLLECTION_ID") Long collectionId, @RequestHeader(value="locale",required=false,defaultValue="en_US") @AuditField(field="LOCALE") String locale) This service is used to retrieve the user's privilege attributes based on given search criteria with pagination parameters. User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.- Parameters:
version
- It hold the value of version number of API. Using this parameter we can access the different version of the API. It is currently unused.authToken
- aString
object. This field holds a valid authorization token generated using the Authorization microservice for an user. Auth token (JWT format) represents claims containing roles and privileges of the user accessing this API. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. Since the token is a required field for this API it has to be generated before hand by invoking the /auth/sessions API provided by Authorization microservice. The output is three Base64 strings separated by dots that can be easily passed in HTML and HTTP environments, while being more compact when compared to XML-based standards such as SAML. Thus generated token has to be passed to this service and the request will be processed only if the following conditions are met:- Token validation against the secret key
- Expiry time should be in the future
- Necessary privileges are available for the user to perform the action on the subjected resource
storeId
- Refers to the unique identifier of the store.page
- aLong
object. The page number to be retrieved where the size of the page must be specified by the size/offset/pageSize parameter. First page starts with value "0".size
- aLong
object. The number of documents being retrieved on the corresponding page specified by page parameter.filter
- aString
object. This field holds the simple query criteria (can be multiple) based on the available fields to limit returned results. Syntax of this parameter is FIELDNAME OP VALUE
Example 1: field1:value, field2:value
Example 2: field1>value
where:- FIELDNAME is the entity's attribute name as represented in the response object
- OP is the operation - Possible values includes
- LIKE (:) - Loads everything similar (like operation) to the given value.
- GREATERTHAN (>) - for integer values - loads rows whose column(field) value is greater than the given value
- LESSTHAN (<) - for integer values - loads rows whose column value is lesser than the given value
- VALUE is the value against which the operation has to be performed on the field
- filters parameter can have multiple objects.
- When multiple attributes are used in filter AND behavior is applied.
collectionId
- aLong
object. This field holds a valid collection identifier of this microservice and requested operation will be performed on this collection identifier. Collection is the top most entity of a microservice under which all the other entities/resources reside. Each collection represents an instance of the microservice with configured properties and these properties can be modified to bring in a different behavior per collection of the same microservice. Store association is the process of associating a microservice collection to a store along with its respective sub-entity. This way storefront can fetch/store the required information from that respective association.locale
- aString
object. API Response and error messages will be responded in the locale mentioned in this parameter. Locale needs to be mentioned in Java standard locale format.- Returns:
- Returns List of User Attributes.
-
getUserAttributeById
@GetMapping("/{userattributeId}") @PreAuthorize("hasRoleForServiceAndCollection(\'ROLE_AUTH_ADMIN\', \'auth\', #collectionId) or hasPrivilegeForServiceAndCollection(\'auth/view/userattributes\', \'auth\', #collectionId)") @Audit(action="getUserAttribute", repository="userAttributeRepository") public org.springframework.http.ResponseEntity<Object> getUserAttributeById(@RequestHeader(value="x-version",required=false,defaultValue="8.19.7") @AuditField(field="VERSION") String version, @RequestHeader(value="x-auth-token",required=false) @AuditField(field="AUTH_TOKEN") String authToken, @RequestHeader(value="x-store-id",required=false,defaultValue="0") @AuditField(field="STORE_ID") long storeId, @PathVariable("userattributeId") @AuditField(field="USER_ATTRIBUTE_ID") Long userattributeId, @RequestHeader(value="X-Collection-Id",required=true,defaultValue="0") @AuditField(field="COLLECTION_ID") Long collectionId, @RequestHeader(value="locale",required=false,defaultValue="en_US") @AuditField(field="LOCALE") String locale) This service is used to retrieve user's privilege attribute based on given attribute identifier.User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.- Parameters:
version
- It hold the value of version number of API. Using this parameter we can access the different version of the API. It is currently unused.authToken
- aString
object. This field holds a valid authorization token generated using the Authorization microservice for an user. Auth token (JWT format) represents claims containing roles and privileges of the user accessing this API. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. Since the token is a required field for this API it has to be generated before hand by invoking the /auth/sessions API provided by Authorization microservice. The output is three Base64 strings separated by dots that can be easily passed in HTML and HTTP environments, while being more compact when compared to XML-based standards such as SAML. Thus generated token has to be passed to this service and the request will be processed only if the following conditions are met:- Token validation against the secret key
- Expiry time should be in the future
- Necessary privileges are available for the user to perform the action on the subjected resource
storeId
- Refers to the unique identifier of the store.userattributeId
- aLong
object. This field holds a valid user attribute identifier of this microservice and requested operation will be performed on this user attribute identifier. User attribute is the entity of this microservice to hold the user's privilege attribute.collectionId
- aLong
object. This field holds a valid collection identifier of this microservice and requested operation will be performed on this collection identifier. Collection is the top most entity of a microservice under which all the other entities/resources reside. Each collection represents an instance of the microservice with configured properties and these properties can be modified to bring in a different behavior per collection of the same microservice. Store association is the process of associating a microservice collection to a store along with its respective sub-entity. This way storefront can fetch/store the required information from that respective association.locale
- aString
object. API Response and error messages will be responded in the locale mentioned in this parameter. Locale needs to be mentioned in Java standard locale format.- Returns:
- Returns UserAttribute based on the group attribute id given.
-
updateUserAttribute
@PutMapping("/{userattributeId}") @PreAuthorize("hasRoleForServiceAndCollection(\'ROLE_AUTH_ADMIN\', \'auth\', #collectionId) or hasPrivilegeForServiceAndCollection(\'auth/update/userattributes\', \'auth\', #collectionId)") @Audit(action="replaceUserAttribute", repository="userAttributeRepository") public org.springframework.http.ResponseEntity<Object> updateUserAttribute(@RequestHeader(value="x-version",required=false,defaultValue="8.19.7") @AuditField(field="VERSION") String version, @RequestHeader(value="x-auth-token",required=false) @AuditField(field="AUTH_TOKEN") String authToken, @RequestHeader(value="x-store-id",required=false,defaultValue="0") @AuditField(field="STORE_ID") long storeId, @PathVariable("userattributeId") @AuditField(field="USER_ATTRIBUTE_ID") Long userattributeId, @RequestBody @AuditField(field="USER_ATTRIBUTE") UserAttributeVO userAttributeDetails, @RequestHeader(value="X-Collection-Id",required=true,defaultValue="0") @AuditField(field="COLLECTION_ID") Long collectionId, @RequestHeader(value="locale",required=false,defaultValue="en_US") @AuditField(field="LOCALE") String locale) This service is used to update user's privilege attribute details based on user attribute identifier and user attribute details. User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.- Parameters:
version
- It hold the value of version number of API. Using this parameter we can access the different version of the API. It is currently unused.authToken
- aString
object. This field holds a valid authorization token generated using the Authorization microservice for an user. Auth token (JWT format) represents claims containing roles and privileges of the user accessing this API. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. Since the token is a required field for this API it has to be generated before hand by invoking the /auth/sessions API provided by Authorization microservice. The output is three Base64 strings separated by dots that can be easily passed in HTML and HTTP environments, while being more compact when compared to XML-based standards such as SAML. Thus generated token has to be passed to this service and the request will be processed only if the following conditions are met:- Token validation against the secret key
- Expiry time should be in the future
- Necessary privileges are available for the user to perform the action on the subjected resource
storeId
- Refers to the unique identifier of the store.userattributeId
- aLong
object. This field holds a valid user attribute identifier of this microservice and requested operation will be performed on this user attribute identifier. User attribute is the entity of this microservice to hold the user's privilege attribute.userAttributeDetails
- aUserAttributeVO
object. This request body holds a valid user's privilege attribute of this microservice to create/update user's privilege attribute entity/resource's details. This end point only use the basic details of user's privilege attribute request.collectionId
- aLong
object. This field holds a valid collection identifier of this microservice and requested operation will be performed on this collection identifier. Collection is the top most entity of a microservice under which all the other entities/resources reside. Each collection represents an instance of the microservice with configured properties and these properties can be modified to bring in a different behavior per collection of the same microservice. Store association is the process of associating a microservice collection to a store along with its respective sub-entity. This way storefront can fetch/store the required information from that respective association.locale
- aString
object. API Response and error messages will be responded in the locale mentioned in this parameter. Locale needs to be mentioned in Java standard locale format.- Returns:
- Returns User Attribute based on the group attribute id given.
-
deleteUserAttribute
@DeleteMapping("/{userattributeId}") @PreAuthorize("hasRoleForServiceAndCollection(\'ROLE_AUTH_ADMIN\', \'auth\', #collectionId) or hasPrivilegeForServiceAndCollection(\'auth/delete/userattributes\', \'auth\', #collectionId)") @Audit(action="deleteUserAttribute", repository="userAttributeRepository") public org.springframework.http.ResponseEntity<Object> deleteUserAttribute(@RequestHeader(value="x-version",required=false,defaultValue="8.19.7") @AuditField(field="VERSION") String version, @RequestHeader(value="x-auth-token",required=false) @AuditField(field="AUTH_TOKEN") String authToken, @RequestHeader(value="x-store-id",required=false,defaultValue="0") @AuditField(field="STORE_ID") long storeId, @PathVariable("userattributeId") @AuditField(field="USER_ATTRIBUTE_ID") Long userattributeId, @RequestHeader(value="X-Collection-Id",required=true,defaultValue="0") @AuditField(field="COLLECTION_ID") Long collectionId, @RequestHeader(value="locale",required=false,defaultValue="en_US") @AuditField(field="LOCALE") String locale) This service is used to delete user's privilege attribute based on given user attribute identifier. User Attribute is the resource/entity to hold user's privilege attribute for conditional privileges in this microservice.- Parameters:
version
- It hold the value of version number of API. Using this parameter we can access the different version of the API. It is currently unused.authToken
- aString
object. This field holds a valid authorization token generated using the Authorization microservice for an user. Auth token (JWT format) represents claims containing roles and privileges of the user accessing this API. JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. Since the token is a required field for this API it has to be generated before hand by invoking the /auth/sessions API provided by Authorization microservice. The output is three Base64 strings separated by dots that can be easily passed in HTML and HTTP environments, while being more compact when compared to XML-based standards such as SAML. Thus generated token has to be passed to this service and the request will be processed only if the following conditions are met:- Token validation against the secret key
- Expiry time should be in the future
- Necessary privileges are available for the user to perform the action on the subjected resource
storeId
- Refers to the unique identifier of the store.userattributeId
- aLong
object. This field holds a valid user attribute identifier of this microservice and requested operation will be performed on this user attribute identifier. User attribute is the entity of this microservice to hold the user's privilege attribute.collectionId
- aLong
object. This field holds a valid collection identifier of this microservice and requested operation will be performed on this collection identifier. Collection is the top most entity of a microservice under which all the other entities/resources reside. Each collection represents an instance of the microservice with configured properties and these properties can be modified to bring in a different behavior per collection of the same microservice. Store association is the process of associating a microservice collection to a store along with its respective sub-entity. This way storefront can fetch/store the required information from that respective association.locale
- aString
object. API Response and error messages will be responded in the locale mentioned in this parameter. Locale needs to be mentioned in Java standard locale format.- Returns:
- Returns Object.
-