JAAS基础1

核心类和接口

与JAAS相关的核心类和接口,可以分为三类:

    公共类:

        Subject, Principal, Credential

    认证类和接口:

        LoginContext, LoginModule, CallbackHandler, Callback

    授权类:

        Policy, AuthPermission, PrivateCredentialPermission

公共类

javax.security.auth.Subject是JAAS的关键类,代表了关于一个主体的一组相关信息。包括主体的Principal, public credentials,and private credentials。

java.security.Principal接口被用来代表当事人。

JAAS定义的Credential可以是任何Object.

Subject

在授权访问资源前,应先验证请求来源。Subject可以是一个人也可以是一个服务。当一个subject被验证,一个javax.security.auth.Subject会被关联身份或PrincipalS填充。一个Subject可以拥有许多Principal。比如,一个人可以有名字Principal,社保号Principal等用来区别与其他人。

认证类和接口

认证一个subject(用户或服务),按如下步骤执行:

1、实例化LoginContext

2、LoginContext查阅Configuration加载所有的LoginModuleS配置

3、调用LoginContext的login方法

4、login方法内调用所有加载的LoginModuleS。每一个LoginModule试图认证subject。一旦成功,LoginModules 关联相关Principals 和Credentials 关于Subject对象,对象代表经过身份验证的subject。

5、LoginContext 返回认证状态status

6、如果认证成功,从LoginContext中得到Subject。

授权类(Authorization Classes)

授于访问控制权限,不仅基于什么代码在运行,还要基于谁在运行它。前置条件:

1、用户必须被认证,就像在LoginContext中所描述的。

2、认证的结果Subject必须与访问控制上下文关联,就像在Subject中描述的。

3、基于Principal的条目必须配置在安全策略中,就像我们下面正要描述。

Policy

java.security.Policy是代表了系统范围的访问控制策略的抽象类。在JDK1.4加入Policy API来支持基于Principal的查询。

JDK默认提供了基于文件的子类实现,

AuthPermission

javax.security.auth.AuthPermission此类用于验证权限。AuthPermission 包含一个名称(也称为“目标名称”),但没有动作列表;您并非一定拥有所指定的权限。

目标名称就是安全配置参数的名称(见API)。目前 AuthPermission 对象可用来保护对 Policy、Subject、LoginContext 和 Configuration 对象的访问。

PrivateCredentialPermission

javax.security.auth.PrivateCredentialPermission保护访问Subject的私有Credential,并提供一个公共构建函数

          public PrivateCredentialPermission(String name, String actions);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值