李杰老师网站建设,搜索引擎网络推广公司上海,wordpress怎么看,金华建设局网站节能备案登记表建筑物身份管理#xff0c;包括身份验证和授权#xff1f; 尝试Stormpath#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险#xff0c;并且可以在几分钟内实现。 注册 #xff0c;再也不会建立auth了#xff01; 今天#xff0c;不到30秒左右的时间… 建筑物身份管理包括身份验证和授权 尝试Stormpath 我们的REST API和强大的Java SDK支持可以消除您的安全风险并且可以在几分钟内实现。 注册 再也不会建立auth了 今天不到30秒左右的时间我就能建立一个Twilio帐户并使用httpie向自己发送一条短信。 再花几分钟的时间少于5分钟我有一个Spring Boot应用程序在做同样的事情。 在大约同样的五分钟内您可以使用Stormpath的身份管理作为服务平台进行设置并学习热衷于身份验证。 我们真正生活在非我的计算机云服务的黄金时代。 您可以想象在过去15年中使用计算机或其他设备所做的任何事情现在您可以注册并在几分钟内获得概念证明。 我记得大约在2007年的某个时候在iPhone 1之后与SMS经纪人交谈。 在完成了一大堆文书工作等待了大约四个月并准备大量资金之后我们准备使用SMS网关编写代码。 那时这是一些不可思议的东西。 曾经尝试推出自己的身份管理吗 你给哈希加盐了吗 或者只要承认这一点–您就像其他人一样以纯文本形式存储密码。 在本文中我们将把Stormpath和Twilio放在一起。 情况如下当用户从新设备登录时我们希望向他们发送一条SMS通知以告知他们。 今天这是使人们了解其帐户活动的一种常见做法。 如果我收到来自新地址的登录通知但不是我那么我知道我的帐户已被盗用。 为了演示的目的我们将考虑从新设备访问新的IP地址。 这篇文章的代码可以在这里找到。 设置风暴路径 第一步是创建一个Stormpath帐户。 您可以在此处关注我们的快速入门文档。 这些是基本步骤 在Stormpath.com注册 点击确认电子邮件中的链接 创建一个API密钥以用于API访问将其保存到 ~/.stormpath/apiKey.properties 设置Stormpath Spring Boot集成 此示例的源代码可以在此处找到。 现在不用担心Twilio的东西-默认情况下它是禁用的。 在下一部分中我们将集成并启用Twilio。 通过Stormpath Spring Boot集成可以轻松地在用户登录之前和之后触发其他操作。此机制是我们稍后用来发送Twilio消息的机制。 现在我们仅要确保登录后处理程序正在运行。 要使用Stormpath Spring Boot集成您只需要包含一个依赖项 dependencygroupIdcom.stormpath.spring/groupIdartifactIdstormpath-thymeleaf-spring-boot-starter/artifactIdversion${stormpath.version}/version
/dependency 在这种情况下我们将使用Spring Boot Web MVC Thymeleaf集成以便我们可以返回Thymeleaf模板。 要设置我们的postLoginHandler 我们只需要创建一个暴露一个bean的Spring Boot配置 Configuration
public class PostLoginHandler{...BeanQualifier(loginPostHandler)public WebHandler defaultLoginPostHandler() {return (HttpServletRequest request, HttpServletResponse response, Account account) - {log.info(Hit default loginPostHandler with account: {}, account.getEmail());return true;};}
} 您可以像这样启动Spring Boot应用程序 mvn clean install
mvn spring-boot:run 现在您可以浏览到 http://localhost:8080/register在Stormpath中创建一个帐户。 然后您可以浏览到 http://localhost:8080/login 。 您应该在日志输出中看到以下内容 2016-09-14 22:37:18.078 ... : Hit default loginPostHandler with account: micahstormpath.com 头晕 我们的登录后挂钩正在运行。 在此示例中我们正在建模的用例是每当用户从新位置登录时向用户发送文本消息SMS。 为此我们需要用户的电话号码。 我们还需要存储他们已登录的位置的数组以便我们确定他们是否正在从新位置登录。 输入Stormpath CustomData 。 我们很早就知道我们无法捕获客户可能拥有的用户数据的所有用例。 因此我们为每个一流的Stormpath对象包括用户帐户附加了10MB的自由格式JSON数据。 那就是CustomData 。 我们像这样存储用户的信息 {loginIPs: [0:0:0:0:0:0:0:1,104.156.228.126,104.156.228.136],phoneNumber: 15556065555
} 这是Stormpath管理控制台中的外观 一旦我们将Twilio应用到组合中我们将回到如何设置CustomData方式。 设置Twilio Twilio的快速入门可以使您快速启动并运行。 基本步骤如下 输入一些基本的注册信息 输入你的电话号码 提供Twilio电话号码 测试您可以将消息从Twilio电话号码发送到您的电话号码 确保您运行测试并且可以发送消息。 您可以使用curl或httpie从命令行自己进行测试 http -f POST \
https://api.twilio.com/2010-04-01/Accounts/account sid/Messages.json \
Torecipient 1... Fromyour twilio phone # - 1... BodyHello there... \
--auth account sid:auth token 现在您知道可以使用您的Twilio帐户了将它作为依赖项添加到Spring Boot应用程序中很容易 dependencygroupIdcom.twilio.sdk/groupIdartifactIdtwilio-java-sdk/artifactIdversion(6.0,6.9)/version
/dependency绑在一起 之前我们将Spring Boot应用程序设置为在用户成功登录后执行一项操作。该操作只是记录一些信息。 现在我们将整合使用相同的登录后处理程序发送Twilio消息的功能。 Bean
Qualifier(loginPostHandler)
public WebHandler twilioLoginPostHandler() {return (HttpServletRequest request, HttpServletResponse response, Account account) - {log.info(Account Full Name: account.getFullName());CustomData customData account.getCustomData();String toNumber (String) customData.get(phoneNumberIdentifier);ListString loginIPs getLoginIPs(customData);String ipAddress getIPAddress(request);if (loginIPs.contains(ipAddress)) {// theyve already logged in from this locationlog.info({} has already logged in from: {}. No message sent., account.getEmail(), ipAddress);} else {boolean messageSent TwilioLoginMessageBuilder.builder().setAccountSid(twilioAccountSid).setAuthToken(twilioAuthToken).setFromNumber(twilioFromNumber).setToNumber(toNumber).send(New login for: account.getEmail() , from: ipAddress);// only save the ip address if the twilio message was successfully sentif (messageSent) {saveLoginIPs(ipAddress, loginIPs, customData);}}return true;};
} 第8行和第9行检索用户的电话号码以及该用户以前登录过的地址的列表。 它从用户的CustomData提取此信息。 假设他们正在从新位置登录则第18行将新地址保存回CustomData 第20行触发Twilio消息。 TwilioLoginMessageBuilder在示例中定义并使用一个流畅的界面。 上面第26行使用的send方法首先检查以确保正确配置了Twilio如果是则尝试发送消息 TwilioRestClient client new TwilioRestClient(accountSid, authToken);ListNameValuePair params new ArrayList();
params.add(new BasicNameValuePair(To, toNumber));
params.add(new BasicNameValuePair(From, fromNumber));
params.add(new BasicNameValuePair(Body, msg));MessageFactory messageFactory client.getAccount().getMessageFactory();
try {Message message messageFactory.create(params);log.info(Message successfuly sent via Twilio. Sid: {}, message.getSid());return true;
} catch (TwilioRestException e) {log.error(Error communicating with Twilio: {}, e.getErrorMessage(), e);return false;
} 让我们启动该应用程序并查看其运行情况 mvn clean installTWILIO_ACCOUNT_SIDyour twilio account sid \
TWILIO_AUTH_TOKENyour twilio auth token \
TWILIO_FROM_NUMBERyour twilio phone number \
TWILIO_ENABLEDtrue \
java -jar target/*.jar 点击前门http://localhost:8080 您就有机会登录。如果查看日志您会发现第一次登录时您没有收到消息因为没有您备案的电话号码。 2016-09-15 16:48:31.621 INFO: Account Full Name: micah silverman
2016-09-15 16:48:31.750 WARN: No toNumber set. Cannot proceed. 接下来要做的是设置电话号码 现在您可以注销并再次登录您应该会收到Twilio通知 2016-09-15 16:53:44.599 INFO: Account Full Name: micah silverman
2016-09-15 16:53:46.080 INFO: Message successfully sent via Twilio. Sid: SM9cd7fdfa3f8f463dbdd8f16662c13b5b 协同增效 在本文中我们采用了Stormpath的登录后处理程序功能并将其与Twilio的SMS功能相结合以产生新的功能这要比这两个平台分别可以完成的功能大。 绝对是服务的黄金时代。 在本文的代码存储库中还使用了更多的Spring Boot魔术包括基于配置设置动态加载defaultLoginPostHandler或twilioLoginPostHandler 。 要使用Twilio处理程序只需在application.properties文件中设置twilio.enabledtrue属性。 现在继续将一些服务粘合在一起以获得乐趣和收益 学到更多 有兴趣了解更多有关使用Spring Boot和Stormpath进行用户身份验证的信息吗 我们还有其他一些很棒的资源可供您查看 通过Spring启动和Stormpath进行OAuth 2.0令牌管理 使用Spring Boot和Heroku在20分钟内完成Java的单点登录 5个构建Spring Boot API的实用技巧 建筑物身份管理包括身份验证和授权 尝试Stormpath 我们的REST API和强大的Java SDK支持可以消除您的安全风险并且可以在几分钟内实现。 注册 再也不会建立auth了 翻译自: https://www.javacodegeeks.com/2016/10/identity-management-spring-boot-twilio-stormpath-15-minutes.html