当前位置:网站首页 > Java基础 > 正文

java认证代码教程



package com.abc.demo.general.jaas;

import javax.security.auth.Subject; import javax.security.auth.callback.*; import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; import java.io.IOException; import java.security.Principal; import java.util.Map;

public class MyLoginModule implements LoginModule {

</span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> Subject subject; </span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> CallbackHandler callbackHandler; </span><span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> Principal principal; @Override </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span> initialize(Subject subject, CallbackHandler callbackHandler, Map&lt;String, ?&gt; sharedState, Map&lt;String, ?&gt;<span style="color: rgba(0, 0, 0, 1)"> options) { </span><span style="color: rgba(0, 0, 255, 1)">this</span>.subject =<span style="color: rgba(0, 0, 0, 1)"> subject; </span><span style="color: rgba(0, 0, 255, 1)">this</span>.callbackHandler =<span style="color: rgba(0, 0, 0, 1)"> callbackHandler; } </span><span style="color: rgba(0, 128, 0, 1)">/</span><span style="color: rgba(0, 128, 0, 1)"> * 登录 </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)"> @Override </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span> login() <span style="color: rgba(0, 0, 255, 1)">throws</span><span style="color: rgba(0, 0, 0, 1)"> LoginException { </span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)"> { NameCallback nameCallback </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> NameCallback("user: "<span style="color: rgba(0, 0, 0, 1)">); PasswordCallback passwordCallback </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> PasswordCallback("password: ", <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">); Callback[] callbacks </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Callback[] { nameCallback, passwordCallback}; callbackHandler.handle(callbacks); String username </span>=<span style="color: rgba(0, 0, 0, 1)"> nameCallback.getName(); String password </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> String(passwordCallback.getPassword()); </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> login(username, password); } </span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (IOException e) { e.printStackTrace(); } </span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (UnsupportedCallbackException e) { e.printStackTrace(); } </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span><span style="color: rgba(0, 0, 0, 1)"> login(String username, String password) { System.out.println(</span>"username=" + username + ",password=" +<span style="color: rgba(0, 0, 0, 1)"> password); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">实际使用中应查数据库验证用户名密码</span> <span style="color: rgba(0, 0, 255, 1)">if</span> ("abc".equals(username) &amp;&amp; ""<span style="color: rgba(0, 0, 0, 1)">.equals(password)) { principal </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> MyPrincipal(username); subject.getPrincipals().add(principal); </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 128, 0, 1)">/</span><span style="color: rgba(0, 128, 0, 1)"> * 登录成功后的操作 </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)"> @Override </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span> commit() <span style="color: rgba(0, 0, 255, 1)">throws</span><span style="color: rgba(0, 0, 0, 1)"> LoginException { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">中断登录</span> 

@Override

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span> abort() <span style="color: rgba(0, 0, 255, 1)">throws</span><span style="color: rgba(0, 0, 0, 1)"> LoginException { </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> logout(); } @Override </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span> logout() <span style="color: rgba(0, 0, 255, 1)">throws</span><span style="color: rgba(0, 0, 0, 1)"> LoginException { </span><span style="color: rgba(0, 0, 255, 1)">if</span> (subject != <span style="color: rgba(0, 0, 255, 1)">null</span> &amp;&amp; principal != <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">) { subject.getPrincipals().remove(principal); } </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">; } 

}

  • 上一篇: java85教程
  • 下一篇: 兵java教程
  • 版权声明


    相关文章:

  • java85教程2025-11-24 19:18:00
  • java权限系统教程2025-11-24 19:18:00
  • java swing教程视频2025-11-24 19:18:00
  • java三运算教程2025-11-24 19:18:00
  • java类库制作教程2025-11-24 19:18:00
  • 兵java教程2025-11-24 19:18:00
  • java框架教程 知乎2025-11-24 19:18:00
  • 赵芳java教程2025-11-24 19:18:00
  • 扫雷游戏java教程2025-11-24 19:18:00
  • java教程.chm2025-11-24 19:18:00