#![warn(missing_docs)]
#![warn(unreachable_pub)]
#![allow(dead_code)]
#![allow(unreachable_pub)]
#![allow(clippy::expect_used)]
#![allow(clippy::unwrap_used)]
#![allow(clippy::indexing_slicing)]
#![allow(clippy::new_ret_no_self)]
#![allow(clippy::collapsible_if)]
#![allow(clippy::format_push_string)]
#![allow(clippy::items_after_statements)]
#![allow(clippy::manual_let_else)]
#![allow(clippy::redundant_closure_for_method_calls)]
#![allow(clippy::manual_range_contains)]
#![allow(clippy::unused_async)]
#[cfg(test)]
mod tests;
pub mod acl;
mod auth;
mod authority;
pub mod authorization_server;
mod context;
mod csrf;
pub mod data_scope;
pub mod email;
mod encoder;
mod error;
mod jwt;
mod oauth2;
pub mod permission;
mod post_authorize;
mod pre_authorize;
mod rbac;
mod rememberme;
mod request_ext;
mod role;
mod secured;
mod user;
pub use auth::{Authentication, AuthenticationManager};
pub use authority::{Authority, GrantedAuthority};
pub use context::{SecurityContext, SecurityContextGuard};
pub use csrf::{CsrfProtectionConfig, CsrfToken, CsrfTokenRepository, InMemoryCsrfTokenRepository};
pub use data_scope::{
DataScope, DataScopeApply, DataScopeContext, DataScopeMiddleware, DataScopeRule, DataScopeType,
};
pub use encoder::{
BcryptPasswordEncoder, NoOpPasswordEncoder, PasswordEncoder, Pbkdf2PasswordEncoder,
StandardPasswordEncoder,
};
pub use error::{SecurityError, SecurityResult};
pub use jwt::{
JwtAlgorithm, JwtAuthentication, JwtClaims, JwtClaimsBuilder, JwtTokenProvider, JwtUtil,
};
pub use oauth2::{
IntrospectionResponse, OAuth2Client, OAuth2Config, OIDCDiscovery, OIDCDiscoveryDocument,
PkceParams, StateManager, TokenEndpointAuthMethod, TokenResponse, TokenResponseWithTimestamp,
UserInfo,
};
pub use post_authorize::{PostAuthorize, PostAuthorizeOptions};
pub use pre_authorize::{PreAuthorize, SecurityExpression};
pub use rbac::{
AuditLog, AuditLogger, ConsoleAuditLogger, PermissionEntry, RbacConfig, RbacManager,
RolePermission, UserRole,
};
pub use request_ext::{SecurityContextExt, get_authentication_from_request};
pub use role::{Permission, Role, Role as RoleEnum, Roles};
pub use secured::{Secured, SecuredHelper, SecurityMetadata};
pub use user::{InMemoryUserService, User, UserDetails, UserService};
pub use authorization_server::{
AuthorizationServer, AuthorizationServerBuilder, DeviceAuthorizationResponse, DeviceCodeStatus,
GrantType, IntrospectionResult, IssuedTokenResponse, RegisteredClient,
};
pub use email::{
Attachment, EmailConfig, EmailError, EmailMessage, EmailQueue, EmailResult, EmailSender,
EmailTemplate, SmtpEmailSender,
};
pub use permission::{
InMemoryPermissionAuditLogger, PermissionAuditEntry, PermissionAuditLog, PermissionAuditLogger,
PermissionDef, PermissionEvaluator, PermissionRegistry,
};
pub mod prelude {
pub use super::{
AuditLogger, Authentication, AuthenticationManager, Authority, ConsoleAuditLogger,
DataScope, DataScopeApply, DataScopeContext, DataScopeMiddleware, DataScopeRule,
DataScopeType, GrantedAuthority, JwtAuthentication, JwtClaims, JwtTokenProvider, JwtUtil,
PasswordEncoder, Permission, PermissionAuditEntry, PermissionAuditLog,
PermissionAuditLogger, PermissionDef, PermissionEntry, PermissionEvaluator,
PermissionRegistry, PreAuthorize, RbacConfig, RbacManager, RoleEnum, RolePermission, Roles,
Secured, SecurityContext, SecurityContextGuard, SecurityExpression, User, UserDetails,
UserRole, UserService,
};
pub use super::csrf::{
CookieCsrfTokenRepository, CsrfProtectionConfig, CsrfToken, CsrfTokenRepository,
CsrfValidator, InMemoryCsrfTokenRepository,
};
}
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_ROLE_PREFIX: &str = "ROLE_";
pub const ANONYMOUS_USER: &str = "anonymousUser";
pub const REMEMBER_ME_KEY: &str = "remember_me";