创建公共Serverlet3登录的逻辑



我在网站上使用Servlet3登录来认证用户,我有这些登录

  1. 网站正常登录(填写报名表格)
  2. Facebook登录(来自Facebook Id)
  3. Twitter Login (From Twitter)

我已经通过下面的代码验证了用户

 HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       request.login(username, password);

它是工作良好的网站登录作为用户给了他/她的EMailId和密码,它存储在数据库。

现在我修改了表,并添加了更多的列,以保存Facebook在同一用户表和密码为Facebook登录Facebook的工作作为密码以及。我将为Twitter做同样的事情,但我希望使用相同的Servlet3来验证用户。我怎样才能实现它?

并在META-INF文件夹中添加context.xml文件

<Realm localDataSource="true" debug="99"
    className="org.apache.catalina.realm.JDBCRealm" connectionName="user"
    connectionPassword="password" connectionURL="jdbc:mysql://localhost:3306/ ccc"
    digest="md5" driverName="com.mysql.jdbc.Driver" roleNameCol="role_name"
    userCredCol="password" userNameCol="email_id"
    userRoleTable="users_list" userTable="user_list_view" />

还可以检查哪个查询由领域条目触发?

首先,您不应该将各种验证因素合并到一个验证表中

你试图实现的是不可能与香草领域配置。您需要的是tomcat中可用的组合域。

CombinedRealm使您能够灵活地将多个数据源配置为验证源。

考虑到这种灵活性,您应该能够拥有单独的表facebook_authtwitter_auth等。在同一个表中为可能越来越多的验证源添加更多的列是不可持续的。

相关内容

  • 没有找到相关文章

最新更新