authenticator

shiro框架了解

我的未来我决定 提交于 2020-07-28 10:38:36
shiro框架 1.shiro简介 Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的 认证,授权,加密 及 会话管理 的解决方案 2.shiro组成 Authentication :身份认证/登录,验证用户是不是拥有相应的身份; Authorization :授权,即权限验证,验证某个已认证的用户是否拥有某个权限; Session Manager :会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中; Cryptography :加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; 3.shiro结构 3.1shiro外部结构 Subject :主体 SecurityManager :安全管理器 Realm :域 流程: 1、应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager; 2、我们需要给Shiro的SecurityManager注入Realm,从而让SecurityManager能得到合法的用户及其 权限进行判断。 3.1shiro内部结构 Subject :主体 SecurityManager :相当于SpringMVC中的DispatcherServlet,它管理着所有Subject、且负责进行认证和授权、及会话

【Mail】JavaMail介绍及发送邮件(一)

扶醉桌前 提交于 2020-05-08 23:46:24
JavaMail介绍   JavaMail是SUN提供给开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API。使用JavaMail,我们可以实现类似OutLook、FoxMail的软件。虽然JavaMail(仅支持JDK4及以上)也是 Java 的API之一,但是却没有直接加入到JDK中,所以我们需要另行下载。另外,JavaMail依赖JAF(JavaBeans Activation Framework),JAF在Java6之后已经合并到JDK中,而JDK5之前需要另外下载JAF的类库。   JavaMail下载地址: http://www.oracle.com/technetwork/java/javamail/index.html JavaMail发送邮件   邮件的方发送过程可以参照: 【Mail】telnet收发邮件过程 ;本例中主要流程是:先创建一个Message(邮件对象),然后使用Transport(邮件传输对象)发邮件发送到邮件服务器。 先新建一个javaweb的maven项目。参照: 【Maven】Eclipse 使用Maven创建Java

springboot(七)JavaMail发送邮件

二次信任 提交于 2020-05-08 23:45:47
JavaMail简介:      JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,不再需要考虑底层的通讯细节如:Socket而是关注在逻辑层面。JavaMail可以发送各种复杂MIME格式的邮件内容,注意JavaMail仅支持JDK4及以上版本。虽然JavaMail是JDK的API但它并没有直接加入JDK中,所以我们需要另外添加依赖 本文目标:   将Java提供的JavaMail类库与SpringBoot项目进行整合,并且简单封装下JavaMail类库。   注意几个点:   1、注意是哪个公司邮箱的服务器(这里用的是网易163)    2、关于服务器的一些配置 一、建项目,直接建一个java项目就可以,这里建的springboot项目(目录) 二、依赖与配置文件mail_zh_CN.properties <? xml version="1.0" encoding="UTF-8" ?> < project xmlns ="http://maven.apache.org/POM/4.0.0" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation =

java中javamail收发邮件实现方法

╄→尐↘猪︶ㄣ 提交于 2020-05-08 23:44:04
概述 1、邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,用于接收电子邮件的标准协议。 IMAP(Internet Mail Access Protocol) :即 Internet 邮件访问协议。是 POP3 的替代协议。 这三种协议都有对应 SSL 加密传输的协议,分别是 SMTPS , POP3S 和 IMAPS 。 MIME(Multipurpose Internet Mail Extensions) :即多用途因特网邮件扩展标准。它不是邮件传输协议。但对传输内容的消息、附件及其它的内容定义了格式。 2、JavaMail 简介 JavaMail 是由 Sun 发布的用来处理 email 的 API 。它并没有包含在 Java SE 中,而是作为 Java EE 的一部分。 mail.jar :此 JAR 文件包含 JavaMail API 和 Sun 提供的 SMTP 、 IMAP 和 POP3 服务提供程序; activation.jar :此

SendMail发送回执及读取收件箱

大兔子大兔子 提交于 2020-05-08 21:22:02
一、SendMail发送有回执提示   1.邮件发送配置 Properties props = new Properties(); String smtp = "smtp.qq.com"; // 使用域名地址,建议不要使用ip地址,因为IP有可能会换掉。 String servername = "******@qq.com" ; String serverpaswd ="*******"; // QQ邮箱的SMTP的授权码 javax.mail.Session mailSession; // 邮件会话对象 javax.mail.internet.MimeMessage mimeMsg; // MIME邮件对象 props = java.lang.System.getProperties(); // 获得系统属性对象 props.setProperty("mail.smtp.timeout", "120000"); // 2分钟 props.put("mail.smtp.host", smtp); // 设置SMTP主机 props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证 // 到服务器验证发送的用户名和密码是否正确 Email_Autherticatorbean myEmailAuther = new Email

深入解析当下大热的前后端分离组件django-rest_framework系列三

别来无恙 提交于 2020-05-08 04:20:08
三剑客之认证、权限与频率组件 认证组件 局部视图认证 在app01.service.auth.py: class Authentication(BaseAuthentication): def authenticate(self,request): token=request._request.GET.get( " token " ) token_obj=UserToken.objects.filter(token= token).first() if not token_obj: raise exceptions.AuthenticationFailed( " 验证失败! " ) return (token_obj.user,token_obj) 在views.py: def get_random_str(user): import hashlib,time ctime= str(time.time()) md5=hashlib.md5(bytes(user,encoding= " utf8 " )) md5.update(bytes(ctime,encoding= " utf8 " )) return md5.hexdigest() from app01.service.auth import * from django.http import JsonResponse

android 8.0 Account行为变更 账号系统

扶醉桌前 提交于 2020-05-07 00:08:40
我们有个方法,是判断系统的账号有没有登录。 public static boolean isAccountLogin(Context context) { String df = "com.z**; AccountManager accountManager = AccountManager.get(context); try { Account[] accounts = accountManager.getAccountsByType(df); if (accounts != null && accounts.length > 0) { Account account = accounts[0]; SDKLogUtils.d("PackageUtils", account.toString()); if (account != null) { return true; } } else { SDKLogUtils.d("PackageUtils", "com.ztemt account is null"); } } catch (Exception var5) { var5.printStackTrace(); } return false; } 这个在8.0以前的手机,完全没问题。但是8.0就有问题。而且改一下target 版本到8.0才有问题。 赶紧查一下。果然8.0变更了。

JDK 之 HttpClient(jdk11)

泪湿孤枕 提交于 2020-04-24 15:37:14
HttpClient 简介 java.net.http.HttpClient 是 jdk11 中正式启用的一个 http 工具类(其实早在 jdk9 的时候就已经存在了,只是处于孵化期),官方寓意为想要取代 HttpURLConnection 和 Apache HttpClient 等比较古老的开发工具。 新增的 HttpClient 截止到目前(2019年3月)为止其实网络资料还比较少,笔者只是根据一些博文和官方 Demo 自己摸索了一下,做了下总结。 由于是 jdk11 中才正式使用的工具类,距离开发者还很遥远,所以对于源码笔者暂不打算深挖,浅浅的理解怎么使用就行 一、HttpClient在 Apache HttpClient 中,一般会创建一个 HttpClient 对象来作为门面。java.net.http.HttpClient 的逻辑也差不多,只是创建方式更加时髦了: //创建 builder HttpClient.Builder builder = HttpClient.newBuilder(); //链式调用 HttpClient client = builder //http 协议版本 1.1 或者 2 .version(HttpClient.Version.HTTP_2) //.version(HttpClient.Version.HTTP_1_1) /

https://github.com/appleboy/gin-jwt包函数的执行顺序

蹲街弑〆低调 提交于 2020-04-18 06:54:46
这个还是比较正规的, 但看代码时,需要了解函数的执行顺序。 token生成: Authenticator-》PayloadFunc token验证: IdentityHandler-》Authorizator Login request flow (using the LoginHandler) PROVIDED: LoginHandler This is a provided function to be called on any login endpoint, which will trigger the flow described below. REQUIRED: Authenticator This function should verify the user credentials given the gin context (i.e. password matches hashed password for a given user email, and any other authentication logic). Then the authenticator should return a struct or map that contains the user data that will be embedded in the jwt token.

Cassandra最佳实践(3)配置篇

£可爱£侵袭症+ 提交于 2020-03-25 09:14:26
3 月,跳不动了?>>> 本篇文章我们主要介绍cassandra的相关配置,我把cassandra的相关配置中个人觉得相对比较重要的按照集群、节点这个横向维度进行介绍,可能有的配置我不会列在这里,那么具有见cassandra.yaml里面的详细介绍;如何配置cassandra,需要在集群启动的时候在conf目录下面的cassandra.yaml里面进行配置即可。此外我们的配置需要遵守yaml文件配置规则。本处以3.11.4进行介绍 集群维度 cluster_name: //集群的名字,默认是Test Cluster,用''括起来。不同的cluster name的节点无法组成一个集群 num_tokens: 256 //集群中单节点的的分配token数,因为使用vnode,也就是vnode的个数,每个token是随机生成的,此外如果不使用vnode的话,可以使用每个节点预分配一个初始的token,通过下面的配置下; initial_token: //如果集群不想使用vnode的话,需要手工给每个节点进行token配置,手工计算节点的token数,但是扩容的时候建议是成倍扩容。vnode不需要 partitioner: //集群的数据分配算法,也就是常见的一致性hash算法中计算hash的那个模块,其中默认使用org.apache.cassandra.dht