国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證--微軟郵箱中國版(21v世紀(jì)互聯(lián)運營的微軟郵箱)

這篇具有很好參考價值的文章主要介紹了javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證--微軟郵箱中國版(21v世紀(jì)互聯(lián)運營的微軟郵箱)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用微軟國際版的看:javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證–微軟郵箱國際版

一、賬號授權(quán)

imap協(xié)議使用oauth2.0身份認(rèn)證,必須先對帳號進(jìn)行授權(quán),授權(quán)方式可以看我之前的文章:微軟郵箱oath2協(xié)議下,使用imap協(xié)議時對賬號授權(quán),如果不進(jìn)行授權(quán),即使認(rèn)證通過了,但是獲取郵件相關(guān)文件夾時,會報錯:A3 BAD User is authenticated but not connected.;
具體報錯如下:
partner outlook inbox java,microsoft,java

二、直接上代碼

package test;

import com.alibaba.fastjson.JSON;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;

public class TestImapAndOauth2By21V {
    public static void main(String[] args) {


        String mailAddress = "郵箱賬號";
        String tenant_id = "租戶id";
        String client_id = "應(yīng)用id";
        String client_secret = "密鑰的值";//注意不是密鑰的id

        String scope = "https://partner.outlook.cn/.default";
        String url = "https://login.partner.microsoftonline.cn/" + tenant_id + "/oauth2/v2.0/token";
        org.apache.commons.httpclient.HttpClient httpClient = new HttpClient();
        PostMethod postMethod = new PostMethod(url);
        postMethod.addRequestHeader("accept", "*/*");//固定參數(shù)
        postMethod.addRequestHeader("connection", "Keep-Alive");//固定參數(shù)
        postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=GBK");//固定參數(shù)

        //必須設(shè)置下面這個Header
        postMethod.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36");//固定參數(shù)
        //添加請求參數(shù)
        postMethod.addParameter("grant_type", "client_credentials");//固定參數(shù)
        postMethod.addParameter("client_id", client_id);
        postMethod.addParameter("client_secret", client_secret);
        postMethod.addParameter("scope", scope);
        String token = "";

        try {
            int code = httpClient.executeMethod(postMethod);
            String resBody = postMethod.getResponseBodyAsString();
            if (code == 200) {
                Map<String, String> map = JSON.parseObject(resBody, Map.class);
                token = map.get("access_token");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            postMethod.releaseConnection();
        }

        try {
            String protocol = "imap";
            int port = 993;
            String host = "partner.outlook.cn";
            Properties properties = new Properties();
            properties.setProperty("mail." + protocol + ".ssl.enable", "true");
            properties.setProperty("mail." + protocol + ".auth.mechanisms", "XOAUTH2");

            Session session = Session.getInstance(properties);
            //session.setDebug(true);

            Store store = session.getStore(protocol);

            store.connect(host, port, mailAddress, token);
            System.out.println("測試通過");
            Folder inboxFolder = getInboxFolder(store);
            Message[] messages = inboxFolder.getMessages();
            System.out.println(messages.length);

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("不通過");
        }

    }

    public static Folder getInboxFolder(Store store) throws Exception {
        Folder folder = null;
        if(store != null) {
            folder = store.getDefaultFolder();
            folder = folder.getFolder("INBOX");
            if(!folder.isOpen()) {
                folder.open(Folder.READ_ONLY);
            }
        }
        return folder;
    }

}

其實和國際版的比較,也就scope 、url 還有host 這三個參數(shù)不一樣,其他的都一樣文章來源地址http://www.zghlxwxcb.cn/news/detail-848479.html

到了這里,關(guān)于javamail微軟郵箱imap協(xié)議使用oauth2.0認(rèn)證--微軟郵箱中國版(21v世紀(jì)互聯(lián)運營的微軟郵箱)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 開啟微軟 Outlook 郵箱 POP, IMAP, SMTP 服務(wù)和獲取服務(wù)密碼(授權(quán)碼)

    開啟微軟 Outlook 郵箱 POP, IMAP, SMTP 服務(wù)和獲取服務(wù)密碼(授權(quán)碼)

    微軟 Outlook 郵箱各種服務(wù)詳細(xì)信息 服務(wù)類型 服務(wù)器地址 端口 加密方法 POP outlook.office365.com 995 TLS IMAP outlook.office365.com 993 TLS SMTP smtp.office365.com 587 STARTTLS 然而僅僅有以上信息還不夠,需要獲取服務(wù)密碼(授權(quán)碼)才能夠使用 POP, IMAP, SMTP 這三種服務(wù),以下是獲取服務(wù)密碼的方法

    2024年02月03日
    瀏覽(30)
  • OAuth2認(rèn)證流程

    OAuth2認(rèn)證流程

    目錄 什么是OAuth2 1. OAuth2認(rèn)證流程 1、用戶點擊微信掃碼 2、用戶授權(quán)黑馬網(wǎng)站訪問用戶信息 3、黑馬程序員的網(wǎng)站獲取到授權(quán)碼 4、攜帶授權(quán)碼請求微信認(rèn)證服務(wù)器申請令牌 5、微信認(rèn)證服務(wù)器向黑馬程序員的網(wǎng)站響應(yīng)令牌 6、黑馬程序員網(wǎng)站請求微信資源服務(wù)器獲取資源即用

    2024年02月16日
    瀏覽(20)
  • 18.Oauth2-微服務(wù)認(rèn)證

    18.Oauth2-微服務(wù)認(rèn)證

    OAuth 2.0授權(quán)框架支持第三方支持訪問有限的HTTP服務(wù),通過在資源所有者和HTTP服務(wù)之間進(jìn)行一個批準(zhǔn)交互來代表資源者去訪問這些資源,或者通過允許第三方應(yīng)用程序以自己的名義獲取訪問權(quán)限。 為了方便理解,可以想象OAuth2.0就是在用戶資源和第三方應(yīng)用之間的一個中間層

    2024年02月10日
    瀏覽(25)
  • 17.Oauth2-微服務(wù)認(rèn)證

    17.Oauth2-微服務(wù)認(rèn)證

    OAuth 2.0授權(quán)框架支持第三方支持訪問有限的HTTP服務(wù),通過在資源所有者和HTTP服務(wù)之間進(jìn)行一個批準(zhǔn)交互來代表資源者去訪問這些資源,或者通過允許第三方應(yīng)用程序以自己的名義獲取訪問權(quán)限。 為了方便理解,可以想象OAuth2.0就是在用戶資源和第三方應(yīng)用之間的一個中間層

    2024年02月10日
    瀏覽(28)
  • Spring Oauth2.0 自定義認(rèn)證模式

    在特定場景下,可能Oauth2自帶的4種認(rèn)證模式可能滿足不了我們?nèi)粘5氖褂?那么今天就為大家?guī)鞳auth2自定義認(rèn)證模式。 知道你們肯定沒耐心讀完(總結(jié)一句話就是授權(quán)用的),有耐心的可以讀完下面的內(nèi)容介紹: 首先呢在這之前我們要搞清楚什么是Oauth , OAuth 是一個開放標(biāo)準(zhǔn),該

    2024年02月16日
    瀏覽(20)
  • 【Oauth2.0 單點登錄 + 第三方授權(quán)認(rèn)證】用戶認(rèn)證、授權(quán)模式

    【Oauth2.0 單點登錄 + 第三方授權(quán)認(rèn)證】用戶認(rèn)證、授權(quán)模式

    本文主要對 SpringSecurity Oauth 2.0 用戶認(rèn)證,授權(quán)碼授權(quán)模式、密碼授權(quán)模式,以及授權(quán)流程進(jìn)行講解 開發(fā)中,有些功能只有管理員才有,普通用戶是沒有的。即需要對用戶的身份進(jìn)行認(rèn)證,是管理員還是普通用戶。認(rèn)證方式有兩種: 身份認(rèn)證: 用戶在訪問相應(yīng)資源時對用戶

    2023年04月08日
    瀏覽(25)
  • Springdoc Swagger UI集成OAuth2認(rèn)證

    Springdoc Swagger UI集成OAuth2認(rèn)證

    之前的文章講過OAuth2體系,以 授權(quán)碼 流程為例(參見下圖), 其中資源服務(wù)器(Resource Server)作為服務(wù)的提供者, 用戶在客戶端應(yīng)用完成授權(quán)流程后,客戶端應(yīng)用需要 攜帶AccessToken請求資源服務(wù)器 , 也即是要想訪問資源服務(wù)器就需要提供正確的 Authorization: Bearer AccessToke

    2024年02月02日
    瀏覽(28)
  • Spring Security對接OIDC(OAuth2)外部認(rèn)證

    前后端分離項目對接OIDC(OAuth2)外部認(rèn)證,認(rèn)證服務(wù)器可以使用Keycloak。 后端已有用戶管理和權(quán)限管理,需要外部認(rèn)證服務(wù)器的用戶名和業(yè)務(wù)系統(tǒng)的用戶名一致才可以登錄。 后臺基于Spring Boot 2.7 +?Spring Security 流程: 前臺瀏覽器跳轉(zhuǎn)到? 后臺地址 +?/login/oauth2/authorization/my-oid

    2024年02月21日
    瀏覽(25)
  • SpringBoot 基于 OAuth2 統(tǒng)一身份認(rèn)證流程詳解

    SpringBoot 基于 OAuth2 統(tǒng)一身份認(rèn)證流程詳解

    了解OAUTH2統(tǒng)一認(rèn)證基本概念 了解OAUTH2協(xié)議流程 了解OAUTH2各種模式類型 了解Spring Security OAuth設(shè)計 2. 分析 傳統(tǒng)登陸認(rèn)證介紹 單點登陸認(rèn)證介紹 OAuth2簡介 OAuth2角色 OAuth2協(xié)議流程介紹 OAuth2授權(quán)類型 OAuth2授權(quán)碼模式流程 OAuth2簡化模式 OAuth2密碼模式 OAuth2客戶端模式 Spring Security

    2024年02月15日
    瀏覽(28)
  • Spring Boot OAuth2 認(rèn)證服務(wù)器搭建及授權(quán)碼認(rèn)證演示

    Spring Boot OAuth2 認(rèn)證服務(wù)器搭建及授權(quán)碼認(rèn)證演示

    本篇使用JDK版本是1.8,需要搭建一個OAuth 2.0的認(rèn)證服務(wù)器,用于實現(xiàn)各個系統(tǒng)的單點登錄。 這里選擇Spring Boot+Spring Security + Spring Authorization Server 實現(xiàn),具體的版本選擇如下: Spirng Boot 2.7.14 , Spring Boot 目前的最新版本是 3.1.2,在官方的介紹中, Spring Boot 3.x 需要JDK 17及以上的

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包