??xml version="1.0" encoding="utf-8" standalone="yes"?>ٶɱֻͨ:BlogJava - 4399ɱol|ɱ佫//www.lmlez.icu/all专注于Java技?/description>zh-cnMon, 21 Oct 2019 00:35:01 GMTMon, 21 Oct 2019 00:35:01 GMT60Cannot find module 'crypto-js?/title><link>//www.lmlez.icu/waterjava/archive/2019/10/19/434853.html</link><dc:creator>狼爱上狸</dc:creator><author>狼爱上狸</author><pubDate>Sat, 19 Oct 2019 03:23:00 GMT</pubDate><guid>//www.lmlez.icu/waterjava/archive/2019/10/19/434853.html</guid><wfw:comment>//www.lmlez.icu/waterjava/comments/434853.html</wfw:comment><comments>//www.lmlez.icu/waterjava/archive/2019/10/19/434853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/waterjava/comments/commentRss/434853.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/waterjava/services/trackbacks/434853.html</trackback:ping><description><![CDATA[UL了老师的代码,出现了该问题Q应该是js加密的问题,而本Zq没有用过js加密Q所以ƈ没有该包的原因,遵@没有安装的方式q行解决?br /><br />1.直接安装该包Q网上大多数都是q个Ҏ<br /><br />命o行代码如下:npm install crypto-js<br /><br />跟我上一文章出现的问题一Pnpm需要安装的话由于要q接外网Q?9%的国内电脑肯定还是不行的Q还是做国内资源映射<br /><br />2.做国内资源映?br /><br />命o行代码如下:npm install -g cnpm --registry=https://registry.npm.taobao.org<br /><br />q一步如果在之前做过则不需要,会记住映的url<br /><br />3.在命令行输入跟第一步差不多的方?br /><br />命o行代码如下:cnpm install crypto-js<br /><br />在ionic开发中Q需要typescript和nodejs的开发环境,其中很大部分在一开始安装了Q但是如果要做更新或者下载一下需要的包的情况下就仍然需要做映射Q才能正安装新的环境?br /><br />感谢淘宝为开发者做的A献?br />————————————————<br />版权声明Q本文ؓCSDN博主「是阿晋啊」的原创文章Q遵?CC 4.0 BY-SA 版权协议Q{载请附上原文出处链接及本声明?br />原文链接Qhttps://blog.csdn.net/qq_38255285/article/details/82793231<img src ="//www.lmlez.icu/waterjava/aggbug/434853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/waterjava/" target="_blank">狼爱上狸</a> 2019-10-19 11:23 <a href="//www.lmlez.icu/waterjava/archive/2019/10/19/434853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从游击队到正规军(?Q马蜂窝旅游|的IM客户端架构演q和实践ȝ - 4399ɱol|ɱ佫//www.lmlez.icu/jb2011/archive/2019/10/17/434839.htmlJack JiangJack JiangThu, 17 Oct 2019 15:14:00 GMT//www.lmlez.icu/jb2011/archive/2019/10/17/434839.html//www.lmlez.icu/jb2011/comments/434839.html//www.lmlez.icu/jb2011/archive/2019/10/17/434839.html#Feedback0//www.lmlez.icu/jb2011/comments/commentRss/434839.html//www.lmlez.icu/jb2011/services/trackbacks/434839.html阅读全文

Jack Jiang 2019-10-17 23:14 发表评论
]]>
spring bootl合thymeleaf通过后台传入的数值@环生成标{?/title><link>//www.lmlez.icu/fiele/archive/2019/10/16/434822.html</link><dc:creator>半导?/dc:creator><author>半导?/author><pubDate>Wed, 16 Oct 2019 08:06:00 GMT</pubDate><guid>//www.lmlez.icu/fiele/archive/2019/10/16/434822.html</guid><wfw:comment>//www.lmlez.icu/fiele/comments/434822.html</wfw:comment><comments>//www.lmlez.icu/fiele/archive/2019/10/16/434822.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/fiele/comments/commentRss/434822.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/fiele/services/trackbacks/434822.html</trackback:ping><description><![CDATA[<div class="znkp"><pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:8.5pt;"><div class="znkp"><span style='display: inline !important; float: none; background-color: #ffffff; color: rgba(0, 0, 0, 0.75); font-family: "Microsoft YaHei","SF Pro Display",Roboto,Noto,Arial,"PingFang SC",sans-serif; font-size: 24px; font-style: normal; font-variant: normal; font-weight: 700; letter-spacing: normal; orphans: 2; overflow-wrap: break-word; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;'>spring bootl合thymeleaf通过后台传入的数值@环生成标{?/span></div><strong class="znkp"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><br /></pre></div><strong class="znkp"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><strong class="znkp"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><strong class="znkp"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; "> </span><span style="color: #000000; "><</span><span style="color: #000000; ">span th:each</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">i:${#numbers.sequence(1,page.pages)}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">></span><span style="color: #000000; "><br />   </span><span style="color: #000000; "><</span><span style="color: #000000; ">span th:text</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${i}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/></span><span style="color: #000000; "><br /></span><span style="color: #000000; "></</span><span style="color: #000000; ">span</span><span style="color: #000000; ">></span></div><img src ="//www.lmlez.icu/fiele/aggbug/434822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/fiele/" target="_blank">半导?/a> 2019-10-16 16:06 <a href="//www.lmlez.icu/fiele/archive/2019/10/16/434822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>拿v键盘是qԌ跟我一起徒手开发一套分布式IMpȝ - 4399ɱol|ɱ佫//www.lmlez.icu/jb2011/archive/2019/10/14/434809.htmlJack JiangJack JiangMon, 14 Oct 2019 14:49:00 GMT//www.lmlez.icu/jb2011/archive/2019/10/14/434809.html//www.lmlez.icu/jb2011/comments/434809.html//www.lmlez.icu/jb2011/archive/2019/10/14/434809.html#Feedback0//www.lmlez.icu/jb2011/comments/commentRss/434809.html//www.lmlez.icu/jb2011/services/trackbacks/434809.html阅读全文

Jack Jiang 2019-10-14 22:49 发表评论
]]>
模态框传?/title><link>//www.lmlez.icu/fiele/archive/2019/10/12/434804.html</link><dc:creator>半导?/dc:creator><author>半导?/author><pubDate>Sat, 12 Oct 2019 08:35:00 GMT</pubDate><guid>//www.lmlez.icu/fiele/archive/2019/10/12/434804.html</guid><wfw:comment>//www.lmlez.icu/fiele/comments/434804.html</wfw:comment><comments>//www.lmlez.icu/fiele/archive/2019/10/12/434804.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/fiele/comments/commentRss/434804.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/fiele/services/trackbacks/434804.html</trackback:ping><description><![CDATA[<div class="znkp"><div class="znkp">模态框传|</div>https://blog.csdn.net/linhaiyun_ytdx/article/details/77417702</div><strong class="znkp"></strong><em></em><u></u><sub></sub><sup></sup><strike></strike><img src ="//www.lmlez.icu/fiele/aggbug/434804.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/fiele/" target="_blank">半导?/a> 2019-10-12 16:35 <a href="//www.lmlez.icu/fiele/archive/2019/10/12/434804.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>12306抢票带来的启C:看我如何用Go实现百万QPS的秒杀pȝ - 4399ɱol|ɱ佫//www.lmlez.icu/jb2011/archive/2019/10/12/434802.htmlJack JiangJack JiangSat, 12 Oct 2019 06:46:00 GMT//www.lmlez.icu/jb2011/archive/2019/10/12/434802.html//www.lmlez.icu/jb2011/comments/434802.html//www.lmlez.icu/jb2011/archive/2019/10/12/434802.html#Feedback0//www.lmlez.icu/jb2011/comments/commentRss/434802.html//www.lmlez.icu/jb2011/services/trackbacks/434802.html阅读全文

Jack Jiang 2019-10-12 14:46 发表评论
]]>
Spring Integration 中文手册 - GOOD - 4399ɱol|ɱ佫//www.lmlez.icu/paulwong/archive/2019/10/11/434799.htmlpaulwongpaulwongFri, 11 Oct 2019 02:28:00 GMT//www.lmlez.icu/paulwong/archive/2019/10/11/434799.html//www.lmlez.icu/paulwong/comments/434799.html//www.lmlez.icu/paulwong/archive/2019/10/11/434799.html#Feedback0//www.lmlez.icu/paulwong/comments/commentRss/434799.html//www.lmlez.icu/paulwong/services/trackbacks/434799.htmlSpring Integration 中文手册 (1)


Spring Integration 中文手册 (2)

paulwong 2019-10-11 10:28 发表评论
]]>
2019.10.10 - 4399ɱol|ɱ佫//www.lmlez.icu/lukelyx/archive/2019/10/10/434794.html逐水而居逐水而居Thu, 10 Oct 2019 03:52:00 GMT//www.lmlez.icu/lukelyx/archive/2019/10/10/434794.html//www.lmlez.icu/lukelyx/comments/434794.html//www.lmlez.icu/lukelyx/archive/2019/10/10/434794.html#Feedback0//www.lmlez.icu/lukelyx/comments/commentRss/434794.html//www.lmlez.icu/lukelyx/services/trackbacks/434794.html

逐水而居 2019-10-10 11:52 发表评论
]]>
LINUX配置DNS - 4399ɱol|ɱ佫//www.lmlez.icu/paulwong/archive/2019/10/10/434793.htmlpaulwongpaulwongThu, 10 Oct 2019 02:55:00 GMT//www.lmlez.icu/paulwong/archive/2019/10/10/434793.html//www.lmlez.icu/paulwong/comments/434793.html//www.lmlez.icu/paulwong/archive/2019/10/10/434793.html#Feedback0//www.lmlez.icu/paulwong/comments/commentRss/434793.html//www.lmlez.icu/paulwong/services/trackbacks/434793.htmlvi /etc/resolv.conf

nameserver 8.8.8.8

paulwong 2019-10-10 10:55 发表评论
]]>
在SPRING INTEGRATION中手动开始和停止JMS LISTENER - 4399ɱol|ɱ佫//www.lmlez.icu/paulwong/archive/2019/10/09/434781.htmlpaulwongpaulwongWed, 09 Oct 2019 09:16:00 GMT//www.lmlez.icu/paulwong/archive/2019/10/09/434781.html//www.lmlez.icu/paulwong/comments/434781.html//www.lmlez.icu/paulwong/archive/2019/10/09/434781.html#Feedback0//www.lmlez.icu/paulwong/comments/commentRss/434781.html//www.lmlez.icu/paulwong/services/trackbacks/434781.html
SPRING INTEGRATION是实CEIP模式的一U框Ӟ即用CHANNEL和JMS-INBOUND-ADAPTER、JMS-OUTBOUND-ADAPTERQ完全脱MJmsTemplate的API?br />
如果需要实现这U场景:从BROKER取一条消息,处理消息Q且处理途中不要再从BROKER再取消息Q处理完后再取消息,再处理?br />
q样要求手动开始和停止JMS LISTENERQ即手动开始和停止JMS-INBOUND-ADAPTER、JMS-OUTBOUND-ADAPTER?br />
@Bean
@InboundChannelAdapter(value = "loaderResponseChannel")
public MessageSource loaderResponseSource() throws Exception {
    return Jms
            .inboundAdapter(oracleConnectionFactory())
            .configureJmsTemplate(
                    t -> t.deliveryPersistent(true)
                            .jmsMessageConverter(jacksonJmsMessageConverter())
            ).destination(jmsInbound).get();
}

当用@InboundChannelAdapterӞ会自动注册一个SourcePollingChannelAdapter Q但q个名字比较长:configrationName.loaderResponseSource.inboundChannelAdapter?br />
呼叫q个实例的start()和stop()Ҏ卛_?br />
@Bean
public IntegrationFlow controlBusFlow() {
    return IntegrationFlows.from("controlBus")
              .controlBus()
              .get();
}

Message operation = MessageBuilder.withPayload("@configrationName.loaderResponseSource.inboundChannelAdapter.start()").build();
operationChannel.send(operation)

https://stackoverflow.com/questions/45632469/shutdown-spring-integration-with-jms-inboundadapter

https://docs.spring.io/spring-integration/docs/5.0.7.RELEASE/reference/html/system-management-chapter.html#control-bus

https://github.com/spring-projects/spring-integration-java-dsl/blob/master/src/test/java/org/springframework/integration/dsl/test/jms/JmsTests.java

https://stackoverflow.com/questions/50428552/how-to-stop-or-suspend-polling-after-batch-job-fail


paulwong 2019-10-09 17:16 发表评论
]]>
适合新手Q从零开发一个IM服务端(ZNettyQ有完整源码Q?/title><link>//www.lmlez.icu/jb2011/archive/2019/10/09/434779.html</link><dc:creator>Jack Jiang</dc:creator><author>Jack Jiang</author><pubDate>Wed, 09 Oct 2019 06:49:00 GMT</pubDate><guid>//www.lmlez.icu/jb2011/archive/2019/10/09/434779.html</guid><wfw:comment>//www.lmlez.icu/jb2011/comments/434779.html</wfw:comment><comments>//www.lmlez.icu/jb2011/archive/2019/10/09/434779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/jb2011/comments/commentRss/434779.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/jb2011/services/trackbacks/434779.html</trackback:ping><description><![CDATA[     摘要: 0、引a站长提示Q本文适合IM新手阅读Q但最好有一定的|络~程l验Q必竟实跉|的代码上手是|络~程。如果你对网l编E,以及IM的一些理论知识知之甚,请务必首先阅读:《新手入门一就够:从零开发移动端IM》,该文为IM白分类整理了详的理论资料Q请按需补充相关知识。配套源码:本文写的比较显但不太易懂,l合代码一h读,文章配套的完整源?nbsp;请从本文文末 “11、完整源...  <a href='//www.lmlez.icu/jb2011/archive/2019/10/09/434779.html'>阅读全文</a><img src ="//www.lmlez.icu/jb2011/aggbug/434779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/jb2011/" target="_blank">Jack Jiang</a> 2019-10-09 14:49 <a href="//www.lmlez.icu/jb2011/archive/2019/10/09/434779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows redis - 4399ɱol|ɱ佫//www.lmlez.icu/lhbjava/archive/2019/10/08/434765.html林的林的Tue, 08 Oct 2019 08:15:00 GMT//www.lmlez.icu/lhbjava/archive/2019/10/08/434765.html//www.lmlez.icu/lhbjava/comments/434765.html//www.lmlez.icu/lhbjava/archive/2019/10/08/434765.html#Feedback0//www.lmlez.icu/lhbjava/comments/commentRss/434765.html//www.lmlez.icu/lhbjava/services/trackbacks/434765.html阅读全文

林的 2019-10-08 16:15 发表评论
]]>
在清理邮时发现 - 4399ɱol|ɱ佫//www.lmlez.icu/muoutang/archive/2019/10/08/434764.html木偶?/dc:creator>木偶?/author>Tue, 08 Oct 2019 07:38:00 GMT//www.lmlez.icu/muoutang/archive/2019/10/08/434764.html//www.lmlez.icu/muoutang/comments/434764.html//www.lmlez.icu/muoutang/archive/2019/10/08/434764.html#Feedback0//www.lmlez.icu/muoutang/comments/commentRss/434764.html//www.lmlez.icu/muoutang/services/trackbacks/434764.html

]]>
yarn - 4399ɱol|ɱ佫//www.lmlez.icu/lhbjava/archive/2019/10/08/434761.html林的林的Tue, 08 Oct 2019 03:35:00 GMT//www.lmlez.icu/lhbjava/archive/2019/10/08/434761.html//www.lmlez.icu/lhbjava/comments/434761.html//www.lmlez.icu/lhbjava/archive/2019/10/08/434761.html#Feedback0//www.lmlez.icu/lhbjava/comments/commentRss/434761.html//www.lmlez.icu/lhbjava/services/trackbacks/434761.htmlyarn的简介:

Yarn是facebook发布的一Ƒ֏代npm的包理工具?br />

yarn的安?

下蝲node.jsQ用npm安装
npm install -g yarn
查看版本Qyarn --version
安装node.js,下蝲yarn的安装程?
提供一?msi文gQ在q行时将引导您在Windows上安装Yarn
Yarn 淘宝源安装,分别复制_脓以下代码行到黑窗口运行即?/div>
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site //cdn.npm.taobao.org/dist/node-sass -g

yarn的常用命令:
安装yarn
npm install -g yarn
安装成功后,查看版本P
yarn --version
创徏文g?yarn
md yarn
q入yarn文g?/div>
cd yarn
初始化项?/div>
yarn init // 同npm initQ执行输入信息后Q会生成package.json文g
yarn的配|项Q?/div>
yarn config list // 昄所有配|项
yarn config get <key> //昄某配|项
yarn config delete <key> //删除某配|项
yarn config set <key> <value> [-g|--global] //讄配置?/div>
安装包:
yarn install //安装package.json里所有包Qƈ包及它的所有依赖项保存qyarn.lock
yarn install --flat //安装一个包的单一版本
yarn install --force //强制重新下蝲所有包
yarn install --production //只安装dependencies里的?/div>
yarn install --no-lockfile //不读取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock
d包(会更新package.json和yarn.lockQ:
yarn add [package] // 在当前的目中添加一个依赖包Q会自动更新到package.json和yarn.lock文g?/div>
yarn add [package]@[version] // 安装指定版本Q这里指的是主要版本Q如果需要精到版本,使用-E参数
yarn add [package]@[tag] // 安装某个tagQ比如beta,next或者latestQ?/div>
//不指定依赖类型默认安装到dependencies里,你也可以指定依赖cdQ?/div>
yarn add --dev/-D // 加到 devDependencies
yarn add --peer/-P // 加到 peerDependencies
yarn add --optional/-O // 加到 optionalDependencies
//默认安装包的主要版本里的最新版本,下面两个命o可以指定版本Q?/div>
yarn add --exact/-E // 安装包的_版本。例如yarn add foo@1.2.3会接?.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3?/div>
yarn add --tilde/-T // 安装包的ơ要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接?.2.9Q但不接?.3.0
发布?/div>
yarn publish
U除一个包
yarn remove <packageName>Q移除一个包Q会自动更新package.json和yarn.lock
更新一个依?/div>
yarn upgrade 用于更新包到Z规范范围的最新版?/div>
q行脚本
yarn run 用来执行?package.json ?scripts 属性下定义的脚?/div>
昄某个包的信息
yarn info <packageName> 可以用来查看某个模块的最新版本信?/div>
~存
yarn cache
yarn cache list # 列出已缓存的每个?/div>
yarn cache dir # q回 全局~存位置
yarn cache clean # 清除~存
————————————————
版权声明Q本文ؓCSDN博主「yw00yw」的原创文章Q遵?CC 4.0 BY-SA 版权协议Q{载请附上原文出处链接及本声明?/div>
原文链接Q?a >https://blog.csdn.net/yw00yw/article/details/81354533


林的 2019-10-08 11:35 发表评论
]]>极简的switch控g - 4399ɱol|ɱ佫//www.lmlez.icu/emu/archive/2019/10/02/434717.htmlemuemuTue, 01 Oct 2019 22:45:00 GMT//www.lmlez.icu/emu/archive/2019/10/02/434717.html//www.lmlez.icu/emu/comments/434717.html//www.lmlez.icu/emu/archive/2019/10/02/434717.html#Feedback0//www.lmlez.icu/emu/comments/commentRss/434717.html//www.lmlez.icu/emu/services/trackbacks/434717.html需要在html面上用C个switch控gQhtml5没有现成的,|上传的版本都有点复杂Q代码量偏大甚至有独立的css和js片段的依赖,用v来不像html控g那么单,有一些动Mcȝ需求镀金也不是太必要,随手写个极简版的用着Q?/span>
<pre onclick="this.c=!this.c;style.backgroundColor=c?'green':'';innerHTML=c?'on   ○':'○  off'"
style
="border-radius:0.7em;border:1px solid black;padding:0 0.4em;display:inline;float:right">○  off</pre>

用pre控g一是ؓ了让字体{宽避免宽度的微变化,二是可以方便的填I格q去调整宽度而不用填&nbsp;

打开关闭状态可以通过d元素的c属性,当然也可以直接用标记相应属性的全局变量来代替,免去了再d元素属性的ȝ:

<script>
var switchState;    
</script>
<pre onclick="style.backgroundColor=(switchState=!switchState)?'green':'';innerHTML=switchState?'on   ○':'○  off'"
style
="border-radius:0.7em;border:1px solid black;padding:0 0.4em;display:inline;">○  off</pre>


emu 2019-10-02 06:45 发表评论
]]>
.net IdentityServer4 + Ws-Federation w䆾认证之\ - 4399ɱol|ɱ佫//www.lmlez.icu/crazycoding/archive/2019/09/30/434713.htmlYing-erYing-erMon, 30 Sep 2019 02:32:00 GMT//www.lmlez.icu/crazycoding/archive/2019/09/30/434713.html//www.lmlez.icu/crazycoding/comments/434713.html//www.lmlez.icu/crazycoding/archive/2019/09/30/434713.html#Feedback0//www.lmlez.icu/crazycoding/comments/commentRss/434713.html//www.lmlez.icu/crazycoding/services/trackbacks/434713.htmlw䆾验证{略
?span style="font-family: "Comic Sans MS";">Form 提供一个输入凭据的自定义窗?Web ?Q然后在应用E序中验证他们的w䆾。(用户凭据标记存储?Cookie 中)
?span style="font-family: "Comic Sans MS";">Windows IISҎ应用E序的设|执行n份验证(默认Q?/div>
?span style="font-family: "Comic Sans MS";">Passport 通过 Microsoft 的集中n份验证服务执行验证,为成员站点(ClientQ提供单独登录和核心配置文g服务
?span style="font-family: "Comic Sans MS";">None 不执行n份验?br />

认证授权协议

・OAuth2 (https://oauth.net/2/)
・OIDC(New) (Identity, Authentication) + OAuth 2.0 = OpenID Connect ⇒ OIDC (https://openid.net/specs/openid-connect-core-1_0.html)
・SAML2(https://www.oasis-open.org/committees/download.php/11511/sstc-saml-tech-overview-2.0-draft-03.pdf)
・WS-Federation(//docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html)

认证与授?/strong>

QAuthentication VS. AuthorizationQ?/span>
⇒OAuth2 VS. OIDC、SAML2、WS-Federation
★AuthN → AuthenticationQWhat you can do
★AuthZ → AuthorizationQWho are you

IdentityServer介绍

Qhttps://github.com/IdentityServerQ?/div>
Identity Server4
・free
・open source
・OpenID Connect and OAuth 2.0 
・ASP.NET Core.
・ASP.NET Framework 4.6.x
IdentityServer4.WsFederation
・free
・open source
・SAML 1.1/2.0 token
・ASP.NET Framework
・ASP.NET Core

借助IdentityServer4搭徏.net认证服务?nbsp;

?net core 2.1 (Server)
?net framework 4.x(Client)
?net core 2.1(Client)
・IdentityServer4
・Ws-FederationQؓ了.net framework 4.x的客L也能通过验证Q?/span>
・Owin
・IIS 10

Server = .net core2.1 + IdentityServer4 + WsFederation
Client = .net Framework 4.5.x + Owin + WsFederation

Server

1. .net core目作成QWeb Application ASP.NET Core2.1Q?br />
2. 
launchSettings.json
 1 {
 2   "iisSettings": {
 3     "windowsAuthentication": false,
 4     "anonymousAuthentication": true,
 5     "iisExpress": {
 6       "applicationUrl": "//localhost:5000/",
 7       "sslPort": 0
 8     }
 9   },
10   "profiles": {
11     "IIS Express": {
12       "commandName": "IISExpress",
13       "environmentVariables": {
14         "ASPNETCORE_ENVIRONMENT": "Development"
15       }
16     },
17     "IdentityServer4.WsFederation": {
18       "commandName": "Project",
19       "launchUrl": "//localhost:5000",
20       "environmentVariables": {
21         "ASPNETCORE_ENVIRONMENT": "Development"
22       }
23     }
24   }
25 }
3.NuGet install IdentityServer4 (version 2.0.4)
4.System.IdentityModel、System.IdentityModel.Service参照
5.Add Config.cs
6.Copy DemoのQuickstart、Views、WsFederation、idsrvtest.pfx floder into Project
7.Startup.csの変?/div>
8.起動
Q未完待l)





Ying-er 2019-09-30 10:32 发表评论
]]>我的公众号之路已开启「Java爱好者社区」原创文章再{你Q?/title><link>//www.lmlez.icu/ldwblog/archive/2019/09/30/434712.html</link><dc:creator>David1228</dc:creator><author>David1228</author><pubDate>Mon, 30 Sep 2019 01:49:00 GMT</pubDate><guid>//www.lmlez.icu/ldwblog/archive/2019/09/30/434712.html</guid><wfw:comment>//www.lmlez.icu/ldwblog/comments/434712.html</wfw:comment><comments>//www.lmlez.icu/ldwblog/archive/2019/09/30/434712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/ldwblog/comments/commentRss/434712.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/ldwblog/services/trackbacks/434712.html</trackback:ping><description><![CDATA[blogjava|站与博客园合ƈ了,对blogjavaq是有感情的?br />q且blogjava|站发布的文章是在博客园首页看不到的?br />blogjava|站首页能看刎ͼ你可以点L题进入可以看到图片二l码信息?br /><br /><strong style="color: red; font-size: 14pt;">Java爱好者社?/strong><br />公众号内容简介:<br /><p><span style="background-color: yellow; color: red;">专注于分享Java后端相关技术、老司机实战干货,不限于JVM、ƈ发、设计模式、性能优化、分布式&微服务、云原生、大数据相关主题?/span><br style="color: red;" /><span style="background-color: yellow; color: red;">希望x的你停下脚步Q定有所收获?/span><br style="color: red;" /><br />以前的个人博客内容不好迁U,所以我打算Ҏ自己的多q经验,不断整理输出有h值的内容?br />目前公众号内Ҏ关于<span style="background-color: yellow; color: red;">SpringCloudQ微服务框架Q、SkywalkingQAPM监控调用链)、JVMQGC分析、内存泄漏分析)</span>相关原创实战文章已出炉?br /><br />最q刚开始已l有不少伙伴关注了Q期待能有幸搜烦到本博客的同学,可以扫码x一下,不胜感激?br />大家有Q何技术、职场、面试上的问题都可以与我交流?br /><br /><span style="background-color: yellow;"><strong class="znkp">方式一Q?/strong></span><span style="color: red; background-color: yellow;"><strong class="znkp">扫码以下公众号二l码Q?/strong></span><br /><img src="//www.lmlez.icu/images/blogjava_net/ldwblog/Java爱好者社Zl码.png" border="0" alt="" /><br /><br />方式二:<span style="color: red;">在微信上直接搜烦Q?nbsp;</span><span style="color: red; background-color: yellow;">Java爱好者社?nbsp;</span><br /><br /><strong style="color: red; background-color: yellow;">Java爱好者社区微信群Q?/strong><br style="background-color: yellow;" /><img src="//www.lmlez.icu/images/blogjava_net/ldwblog/1569807716.png" border="0" alt="" /><br />目前q有坑位Q大家扫码加入吧~。如果无法加入可以加我的个h微信P拉你q群?br /><br />个h微信Pldw1228<br /><br />感谢各位伙伴的支持Q后l会在该公众号上输出大量的有价值的实战q货 Q期待与你一同进步与成长?br /><br /></p><img src ="//www.lmlez.icu/ldwblog/aggbug/434712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/ldwblog/" target="_blank">David1228</a> 2019-09-30 09:49 <a href="//www.lmlez.icu/ldwblog/archive/2019/09/30/434712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IM开发基知识补课(?Q数据库用NoSQLq是SQLQ读q篇够了! - 4399ɱol|ɱ佫//www.lmlez.icu/jb2011/archive/2019/09/26/434701.htmlJack JiangJack JiangThu, 26 Sep 2019 06:16:00 GMT//www.lmlez.icu/jb2011/archive/2019/09/26/434701.html//www.lmlez.icu/jb2011/comments/434701.html//www.lmlez.icu/jb2011/archive/2019/09/26/434701.html#Feedback0//www.lmlez.icu/jb2011/comments/commentRss/434701.html//www.lmlez.icu/jb2011/services/trackbacks/434701.html阅读全文

Jack Jiang 2019-09-26 14:16 发表评论
]]>
mvn 打包上传docker的命?/title><link>//www.lmlez.icu/lhbjava/archive/2019/09/25/434699.html</link><dc:creator>林的</dc:creator><author>林的</author><pubDate>Wed, 25 Sep 2019 03:06:00 GMT</pubDate><guid>//www.lmlez.icu/lhbjava/archive/2019/09/25/434699.html</guid><wfw:comment>//www.lmlez.icu/lhbjava/comments/434699.html</wfw:comment><comments>//www.lmlez.icu/lhbjava/archive/2019/09/25/434699.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.lmlez.icu/lhbjava/comments/commentRss/434699.html</wfw:commentRss><trackback:ping>//www.lmlez.icu/lhbjava/services/trackbacks/434699.html</trackback:ping><description><![CDATA[     摘要:   <a href='//www.lmlez.icu/lhbjava/archive/2019/09/25/434699.html'>阅读全文</a><img src ="//www.lmlez.icu/lhbjava/aggbug/434699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.lmlez.icu/lhbjava/" target="_blank">林的</a> 2019-09-25 11:06 <a href="//www.lmlez.icu/lhbjava/archive/2019/09/25/434699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CountDownLatch、CyclicBarrier和Semaphore - 4399ɱol|ɱ佫//www.lmlez.icu/paulwong/archive/2019/09/24/434696.htmlpaulwongpaulwongTue, 24 Sep 2019 02:18:00 GMT//www.lmlez.icu/paulwong/archive/2019/09/24/434696.html//www.lmlez.icu/paulwong/comments/434696.html//www.lmlez.icu/paulwong/archive/2019/09/24/434696.html#Feedback0//www.lmlez.icu/paulwong/comments/commentRss/434696.html//www.lmlez.icu/paulwong/services/trackbacks/434696.htmlCountDownLatch、CyclicBarrier和Semaphoreq三个ƈ发辅助类Q可以在U程中呼叫,使得U程暂停{,但各有不同?br />
  • CountDownLatch
1、初始化Qƈ传入计数?br /> 2、向不同的线E传入CountDownLatch实例
3、如果在某一U程中呼叫await()Q则此线E被挂vQ直到计数器?Q才往下执?br /> 4、如果在某一U程中呼叫countDown()Q计数器?
5、最l如果计数器gؓ0Ӟ则CountDownLatch实例不再起作用了Q即Zơ性的

  • CyclicBarrier
1、初始化Qƈ传入计数器|也可传入一个Runnablec,会在计数器ؓ0Ӟ被执?br /> 2、向不同的线E传入CyclicBarrier实例
3、如果在某一U程中呼叫await()Q则此线E被挂vQ直到计数器?Q才往下执?br /> 4、其他线E呼叫await()Q则此线E被挂vQ直到计数器?Q才往下执?br /> 5、最l如果计数器gؓ0Ӟ则CyclicBarrier实例会将计数器值恢复,又可重用

  • Semaphore
1、初始化Qƈ传入计数器?br /> 2、向不同的线E传入Semaphore实例
3、如果在某一U程中呼叫acquire()Q则Semaphore实例会将计数器值减1Q如果计数器gؓ-1Q则计数器值置?Q此U程被挂P直到计数器值大?Ӟ才往下执?br /> 4、此U程需呼叫release()Q得计数器?1Q以便其他线E在计数器gؓ0时不受阻


CountDownLatch 例子Q?br />
public class Test {
     public static void main(String[] args) {   
         final CountDownLatch latch = new CountDownLatch(2);
          
         new Thread(){
             public void run() {
                 try {
                     System.out.println("子线E?+Thread.currentThread().getName()+"正在执行");
                    Thread.sleep(3000);
                    System.out.println("子线E?+Thread.currentThread().getName()+"执行完毕");
                    latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
             };
         }.start();
          
         new Thread(){
             public void run() {
                 try {
                     System.out.println("子线E?+Thread.currentThread().getName()+"正在执行");
                     Thread.sleep(3000);
                     System.out.println("子线E?+Thread.currentThread().getName()+"执行完毕");
                     latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
             };
         }.start();
          
         try {
             System.out.println("{待2个子U程执行完毕");
            latch.await();
            System.out.println("2个子U程已经执行完毕");
            System.out.println("l箋执行ȝE?);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
     }
}

l果Q?br />
U程Thread-0正在执行
U程Thread-1正在执行
{待2个子U程执行完毕
U程Thread-0执行完毕
U程Thread-1执行完毕
2个子U程已经执行完毕
l箋执行ȝE?/div>

CyclicBarrier例子Q?br />
public class Test {
    public static void main(String[] args) {
        int N = 4;
        CyclicBarrier barrier  = new CyclicBarrier(N,new Runnable() {
            @Override
            public void run() {
                System.out.println("当前U程"+Thread.currentThread().getName());   
            }
        });
         
        for(int i=0;i<N;i++)
            new Writer(barrier).start();
    }
    static class Writer extends Thread{
        private CyclicBarrier cyclicBarrier;
        public Writer(CyclicBarrier cyclicBarrier) {
            this.cyclicBarrier = cyclicBarrier;
        }
 
        @Override
        public void run() {
            System.out.println("U程"+Thread.currentThread().getName()+"正在写入数据");
            try {
                Thread.sleep(5000);      //以睡眠来模拟写入数据操作
                System.out.println("U程"+Thread.currentThread().getName()+"写入数据完毕Q等待其他线E写入完?);
                cyclicBarrier.await();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }catch(BrokenBarrierException e){
                e.printStackTrace();
            }
            System.out.println("所有线E写入完毕,l箋处理其他d");
        }
    }
}

执行l果Q?br />
U程Thread-0正在写入数据
U程Thread-1正在写入数据
U程Thread-2正在写入数据
U程Thread-3正在写入数据
U程Thread-0写入数据完毕Q等待其他线E写入完?br /> U程Thread-1写入数据完毕Q等待其他线E写入完?br /> U程Thread-2写入数据完毕Q等待其他线E写入完?br /> U程Thread-3写入数据完毕Q等待其他线E写入完?br /> 当前U程Thread-3
所有线E写入完毕,l箋处理其他d
所有线E写入完毕,l箋处理其他d
所有线E写入完毕,l箋处理其他d
所有线E写入完毕,l箋处理其他d


Semaphore例子Q?br />
public class Test {
    public static void main(String[] args) {
        int N = 8;            //工h?/span>
        Semaphore semaphore = new Semaphore(5); //机器数目
        for(int i=0;i<N;i++)
            new Worker(i,semaphore).start();
    }
     
    static class Worker extends Thread{
        private int num;
        private Semaphore semaphore;
        public Worker(int num,Semaphore semaphore){
            this.num = num;
            this.semaphore = semaphore;
        }
         
        @Override
        public void run() {
            try {
                semaphore.acquire();
                System.out.println("工h"+this.num+"占用一个机器在生");
                Thread.sleep(2000);
                System.out.println("工h"+this.num+"释放出机?);
                semaphore.release();           
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

执行l果Q?br />
工h0占用一个机器在生
工h1占用一个机器在生
工h2占用一个机器在生
工h4占用一个机器在生
工h5占用一个机器在生
工h0释放出机?br /> 工h2释放出机?br /> 工h3占用一个机器在生
工h7占用一个机器在生
工h4释放出机?br /> 工h5释放出机?br /> 工h1释放出机?br /> 工h6占用一个机器在生
工h3释放出机?br /> 工h7释放出机?br /> 工h6释放出机?/div>
https://www.cnblogs.com/dolphin0520/p/3920397.html

https://juejin.im/post/5aeec3ebf265da0ba76fa327

paulwong 2019-09-24 10:18 发表评论
]]>团技术分享:深度解密团的分布式ID生成法 - 4399ɱol|ɱ佫//www.lmlez.icu/jb2011/archive/2019/09/23/434692.htmlJack JiangJack JiangMon, 23 Sep 2019 08:25:00 GMT//www.lmlez.icu/jb2011/archive/2019/09/23/434692.html//www.lmlez.icu/jb2011/comments/434692.html//www.lmlez.icu/jb2011/archive/2019/09/23/434692.html#Feedback0//www.lmlez.icu/jb2011/comments/commentRss/434692.html//www.lmlez.icu/jb2011/services/trackbacks/434692.html阅读全文

4399ɱol 2019-09-23 16:25 发表评论
]]>