tsec.authorization

Members list

Type members

Classlikes

object AuthGroup

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
AuthGroup.type
trait Authorization[F[_], Identity, Auth]

Attributes

Companion
object
Source
Authorization.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait BLPAuthorization[F, A, Auth]
class BLPReadAction[F, Role, A, Auth]
class BLPWriteAction[F, Role, A, Auth]
class BasicDAC[F, G, U, Auth]
class BasicRBAC[F, R, U, Auth]
class DynamicRBAC[F, Role, U, Auth]
class HierarchyAuth[F, R, U, Auth]
Show all
object Authorization

Attributes

Companion
trait
Source
Authorization.scala
Supertypes
class Object
trait Matchable
class Any
Self type
trait AuthorizationInfo[F[_], Role, U]

A simple typeclass that allows us to propagate information that is required for authorization

A simple typeclass that allows us to propagate information that is required for authorization

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
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

Attributes

Source
BLPAuthorization.scala
Supertypes
trait Authorization[F, A, Auth]
class Object
trait Matchable
class Any
Known subtypes
class BLPReadAction[F, Role, A, Auth]
class BLPWriteAction[F, Role, A, Auth]
sealed abstract case class BLPReadAction[F[_], Role, A, Auth](authLevel: Role)(implicit authInfo: AuthorizationInfo[F, Role, A], enum: SimpleAuthEnum[Role, Int], F: MonadError[F, Throwable]) extends BLPAuthorization[F, A, Auth]

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

Attributes

Companion
object
Source
BLPAuthorization.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait BLPAuthorization[F, A, Auth]
trait Authorization[F, A, Auth]
class Object
trait Matchable
class Any
Show all
object BLPReadAction

Attributes

Companion
class
Source
BLPAuthorization.scala
Supertypes
class Object
trait Matchable
class Any
Self type
sealed abstract case class BLPWriteAction[F[_], Role, A, Auth](authLevel: Role)(implicit authInfo: AuthorizationInfo[F, Role, A], enum: SimpleAuthEnum[Role, Int], F: MonadError[F, Throwable]) extends BLPAuthorization[F, A, Auth]

Only write to same level.

Only write to same level. No write up, no write down.

Attributes

Companion
object
Source
BLPAuthorization.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait BLPAuthorization[F, A, Auth]
trait Authorization[F, A, Auth]
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Source
BLPAuthorization.scala
Supertypes
class Object
trait Matchable
class Any
Self type
abstract class BasicDAC[F[_], G, U, Auth](implicit eq: Eq[G], F: MonadError[F, Throwable]) 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,

Attributes

Source
BasicDAC.scala
Supertypes
trait Authorization[F, U, Auth]
class Object
trait Matchable
class Any
sealed abstract case class BasicRBAC[F[_], R, U, Auth](authorized: Type[R])(implicit role: AuthorizationInfo[F, R, U], enum: SimpleAuthEnum[R, String], F: MonadError[F, Throwable]) extends Authorization[F, U, Auth]

Attributes

Companion
object
Source
BasicRBAC.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Authorization[F, U, Auth]
class Object
trait Matchable
class Any
Show all
object BasicRBAC

Attributes

Companion
class
Source
BasicRBAC.scala
Supertypes
class Object
trait Matchable
class Any
Self type
BasicRBAC.type
trait DynamicAuthGroup[F[_], Grp]

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
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]

Attributes

Source
DynamicRBAC.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Authorization[F, U, Auth]
class Object
trait Matchable
class Any
Show all
sealed abstract case class HierarchyAuth[F[_], R, U, Auth](authLevel: R)(implicit role: AuthorizationInfo[F, R, U], enum: SimpleAuthEnum[R, Int], F: MonadError[F, Throwable]) extends Authorization[F, U, Auth]

Attributes

Companion
object
Source
HierarchyAuth.scala
Supertypes
trait Serializable
trait Product
trait Equals
trait Authorization[F, U, Auth]
class Object
trait Matchable
class Any
Show all
object HierarchyAuth

Attributes

Companion
class
Source
HierarchyAuth.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Source
package.scala
Supertypes
trait TSecError
trait NoStackTrace
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
Self type
abstract class SimpleAuthEnum[T, Repr]

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.

Type parameters

Repr

the representation type (i.e., string, int, double, ...)

T

the abstract type to enumerate, subclass style

Attributes

Companion
object
Source
SimpleAuthEnum.scala
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Source
SimpleAuthEnum.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Types

type AuthGroup[G] = Type[G]

Attributes

Source
package.scala

Attributes

Source
package.scala