通过实例介绍JAAS的执行流程

本文介绍了Java Authentication and Authorization Service (JAAS) 的核心概念,包括认证和授权,并通过具体代码示例展示了JAAS的执行流程。首先,详细解释了JAASTest和LoginContext的角色,接着分析了如何从jaas.config配置文件中获取模块信息。随后,文章阐述了登录模块的初始化和登录过程,特别提到了反射调用login方法以及授权动作SysPropAction的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    JAAS,Java Authentication and Authorization Service,Java认证和授权服务。“认证”部分主要负责确定程序使用者的身份,而“授权”将各个用户映射到相应的权限。下面通过java核心技术上的例子来记录JAAS的执行流程。大体执行流程如下图:

   

首先,JAASTest代码如下:

JButton getValueButton = new JButton("Get Value");
      getValueButton.addActionListener(new ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               getValue();
            }
         });

public void getValue()
   {
      try
      {
         LoginContext context = new LoginContext("Login1", new SimpleCallbackHandler(username
               .getText(), password.getPassword()));
         context.login();
         Subject subject = context.getSubject();
         propertyValue.setText(""
               + Subject.doAsPrivileged(subject, new SysPropAction(propertyName.getText()), null));
         context.logout();
      }
      catch (LoginException e)
      {
         JOptionPane.showMessageDialog(this, e);
      }
   }

    获取到用户输入的username和password,构造SimpleCallbackHandler对象,传递到登陆控制上下文中LoginContext。

    LoginContext代码如下:

 public LoginContext(String name, CallbackHandler callbackHandler)
    throws LoginException {
        init(name);
        if (callbackHandler == null)
            throw new LoginException(Resou
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值