这是一个针对单个用户的自定义领域身份验证计划,可帮助我与多个用户一起使用

时间:2019-07-03 05:50:51

标签: authentication tomcat java-ee

下面的代码是Tomcat自定义领域身份验证代码,如果用户输入密码作为“ test”,它将成功登录

我该如何修改该程序,以便如果我有5个用户,并且每个用户使用存储在数组中的不同密码

并告诉我这个领域的执行方式 哪个函数先执行,谁调用这些函数

import java.security.Principal;
import java.util.ArrayList;
import java.util.List;
import org.apache.catalina.realm.RealmBase;
import org.apache.catalina.realm.GenericPrincipal;

 public class NewRealm extends RealmBase 
   {
     private String username;
     private String password;
     @Override
     public Principal authenticate(String username, String credentials) 
        {
          this.username = username;
          this.password = credentials;
          if (this.username.equals(this.password)) 
           {
            return getPrincipal(username);
           }
            else
            {
            return null;
            }
          }
         @Override
         protected String getName() {
         return username;
          }
         @Override
         protected String getPassword(String username) {
         return "test";
         }
         @Override
         protected Principal getPrincipal(String string) {
         List<String> roles = new ArrayList<String>();
         roles.add("user");
       Principal principal = new GenericPrincipal(username,"test",roles);
       return principal;
     }
   }

0 个答案:

没有答案