package authorization
- Source
- package.scala
- Alphabetic
- By Inheritance
- authorization
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- type AuthGroup[G] = Type[G]
- trait Authorization[F[_], Identity, Auth] extends AnyRef
-
trait
AuthorizationInfo[F[_], Role, U] extends AnyRef
A simple typeclass that allows us to propagate information that is required for authorization
-
trait
BLPAuthorization[F[_], A, Auth] extends Authorization[F, A, Auth]
A trait representing Bell LaPadula Model Authorization We will use the strong star property here, thus: No reading a higher authorization level Only writing to your authorization level.
A trait representing Bell LaPadula Model Authorization We will use the strong star property here, thus: No reading a higher authorization level Only writing to your authorization level. We will not use DAC here, though this could be implemented
-
sealed abstract
case class
BLPReadAction[F[_], Role, A, Auth] extends BLPAuthorization[F, A, Auth] with Product with Serializable
Bell La Padula read action: We do not read to higher authorization levels aka Simple Security Property.
Bell La Padula read action: We do not read to higher authorization levels aka Simple Security Property. For our model, we will think about higher authorization levels as being lower in number
-
sealed abstract
case class
BLPWriteAction[F[_], Role, A, Auth] extends BLPAuthorization[F, A, Auth] with Product with Serializable
Only write to same level.
Only write to same level. No write up, no write down.
-
abstract
class
BasicDAC[F[_], G, U, Auth] extends Authorization[F, U, Auth]
A class modeling basic Discretionary access control.
A class modeling basic Discretionary access control. In this case, the user has to provide an
AuthGroup
for which groups are allowed to access the data, - sealed abstract case class BasicRBAC[F[_], R, U, Auth] extends Authorization[F, U, Auth] with Product with Serializable
- trait DynamicAuthGroup[F[_], Grp] extends AnyRef
- case class DynamicRBAC[F[_], Role, U, Auth](dynamic: DynamicAuthGroup[F, Role])(implicit authInfo: AuthorizationInfo[F, Role, U], enum: SimpleAuthEnum[Role, String], F: MonadError[F, Throwable]) extends Authorization[F, U, Auth] with Product with Serializable
- sealed abstract case class HierarchyAuth[F[_], R, U, Auth] extends Authorization[F, U, Auth] with Product with Serializable
- type InvalidAuthLevel = InvalidAuthLevelError.type
-
abstract
class
SimpleAuthEnum[T, Repr] extends AnyRef
Dead simple typed enum with explicitly handled enumeration error It also provides an implicit decoder/encoder for serialization into json.
Dead simple typed enum with explicitly handled enumeration error It also provides an implicit decoder/encoder for serialization into json.
- T
the abstract type to enumerate, subclass style
- Repr
the representation type (i.e., string, int, double, ...)
Value Members
- object AuthGroup
- object Authorization
- object BLPReadAction extends Serializable
- object BLPWriteAction extends Serializable
- object BasicRBAC extends Serializable
- object HierarchyAuth extends Serializable
- object InvalidAuthLevelError extends Exception with TSecError
- object SimpleAuthEnum