疯狂的企鹅

Crazy.Rico's Blog


  • 首页

  • 归档

  • 关于

  • 标签

  • 分类

  • links

  • 搜索

JavaWeb整合Discuz实现单点登录

发表于 2016-09-26 更新于 2019-10-16 分类于 其他 , 论坛
本文字数: 2.8k 阅读时长 ≈ 3 分钟

为了丰富员工业余生活,增多交流机会,于是在公司搭建了论坛方便大家灌水,目前公司中企业级应用是基于JAVAEE的产品,论坛选用了比较受欢迎的Discuz 3.2, 为了避免二次登陆使用单点登陆解决,虽然查找了各种资料做集成,但是其中还是遇到了些问题,翻墙发现了:
discuz-ucenter-api-for-java
因为被墙,在国内无法访问code.google.com,已将测试代码做了部分调整上传至GitHub:
https://github.com/yaonew/discuz-ucenter_api_for_java

第一步配置config.properties

1
2
3
4
5
UC_API = http://你的discuz地址/uc_server  如http://localhost/bbs/uc_server
UC_IP = 正常情况下留空即可
UC_KEY = N3M117R45aWfqfe4xcu0OfTcAT3r4K6f2KRoUOFYT(与ucenter通信的密钥,这里自己设定,需与discuz ucenter 一致)
UC_APPID = 2 //appID为UCenter中应用管理中的ID,见UCenter设置
UC_CONNECT = 正常情况下留空即可

第二步 配置web.xml,添加如下

1
2
3
4
5
6
7
8
9
<servlet>
<servlet-name>api</servlet-name>
<servlet-class>com.fivestars.interfaces.bbs.api.UC</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>api</servlet-name>
<url-pattern>/api/uc.php</url-pattern>
</servlet-mapping>

第三步 配置ucenter

管理员登陆UCenter : http://localhost/bbs/uc_server
应用管理-> 添加应用, 这边添加的应用ID,通信秘钥与第一步的配置保持一致


配置完成,看到通信成功的信息,表示ucenter集成配置OK

第四步 访问测试页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%@page import="java.util.LinkedList"%>
<%@page import="com.fivestars.interfaces.bbs.util.XMLHelper"%>
<%@page import="com.fivestars.interfaces.bbs.client.Client"%>
<%
Client uc = new Client();
//String result1 = uc.uc_user_register("test3", "test3", "test3@huaqi.info");
//out.println("xxx" + result1);
String result = uc.uc_user_login("test3", "test3");

LinkedList<String> rs = XMLHelper.uc_unserialize(result);
if(rs.size()>0){
int $uid = Integer.parseInt(rs.get(0));
String $username = rs.get(1);
String $password = rs.get(2);
String $email = rs.get(3);
if($uid > 0) {
response.addHeader("P3P"," CP=\"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR\"");

out.println("登录成功");
out.println($username);
out.println($password);
out.println($email);

String $ucsynlogin = uc.uc_user_synlogin($uid);
out.println("登录成功"+$ucsynlogin);

//本地登陆代码
//TODO ... ....
Cookie auth = new Cookie("auth", uc.uc_authcode($password+"\t"+$uid, "ENCODE"));
auth.setMaxAge(31536000);
//auth.setDomain("localhost");
response.addCookie(auth);

Cookie user = new Cookie("uchome_loginuser", $username);
response.addCookie(user);

} else if($uid == -1) {
out.println("用户不存在,或者被删除");
} else if($uid == -2) {
out.println("密码错");
} else {
out.println("未定义");
}
}else{
out.println("Login failed");
System.out.println(result);
}
%>

访问页面返回一段js:
登录成功
test3
test3
test3@huaqi.info
登录成功

1
<script type="text/javascript" src="http://localhost/api/uc.php?time=1474188863&amp;code=6dfdhvNXKRoUOFYTR3Jn3ORQ2LKDd6cI6X5p4RD3yxyh6gy3%2F%2FQAJ5u8URp7qR%2F%2F0jaIoha2g4MnGRtosanyDihDy%2BIyW0zNNAnjkGHoaC1uyga5U2py%2F6%2F4uolQKBJaVI%2FMsM%2BuFUlttWcSmS7mzQoN%2Be0tzvPFZg2Y" reload=“1”</script>

在浏览器中执行后访问 discus已保持登陆状态!

Hexo搭建GitHub个人博客系统

发表于 2016-09-20 更新于 2019-10-16 分类于 其他 , 博客
本文字数: 2.7k 阅读时长 ≈ 2 分钟

作为一名征战于IT行业多年的程序猴,之前都本着拿来主义的原则,吸收互联网上各种知识,资料文档,很少写过博文分享,真是惭愧,想来也是本人比较懒得原因,最近突然心血来潮,写点什么供大家分享也是极好的,先就将Hexo个人博客搭建于GitHub上作一记录,给想要搭建个人博客的宝宝们一个参考,文采有限,凑合着看吧。

Hexo

hexo是一款基于Node.js的静态博客框架。目前在GitHub上已有12121 star 和 1953 fork。

安装Git

Git是神马,Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。……不用啰嗦了百度上多有,我们的博客系统是开源与GitHub上的,以及我们最终部署在GitHub上,需要用到Git这个工具。
下载对应的系统的版本安装包,我这边以window为例,下载地址:https://git-scm.com/downloads/ 下载到git-xxx.exe安装包双击安装 下一步…下一步…
安装完验证Git是否安装正确,cmd打开dos窗口,输入:git –version
是否能打印出git版本,正常输出表示安装成功!

1
2
C:\Users\peekay> git --version
git version2.9.0.windows.1

安装Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
hexo是一款基于Node.js的静态博客框架,显然需要Node.js的支持
登陆Node.js中文网地址:http://nodejs.cn/ 下载对应系统版本,双击安装 下一步…
安装完成,cmd打开dos窗口,输入:node -v 正常输出表示安装成功!

1
2
C:\Users\peekay> node -v
v4.4.7

注册GitHub账号及设置

登陆GitHub官网 https://github.com/ 有账号的使用账号登陆,没有的创建一个,具体不啰嗦,网上教程一堆,下一步下一步注册完成。

一、设置git的username,email,打开Git目录下的Git Bash,输入:

1
2
3
$ git config --global user.name "peekay"

$ git config --global user.email "peekay@sina.cn"

二、生成秘钥

在Git Bash 中输入: ssh-keygen 一路回车

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/peeka/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/peeka/.ssh/id_rsa.
Your public key has been saved in /c/Users/peeka/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:u7Gm0/gYNWECusxcTmryX9BKNeGMUaFmVq3a/7Gjc4U peeka@DESKTOP-ANIM9KS
The key's randomart image is:
+---[RSA 2048]----+
| o.=o |
| . O .. |
| . O *.o |
| + X o.+ . |
|. B +o. S . |
| + ..o.. oE . |
| . . o+o .. |
| . .oo=+oo |
| . o===o. |
+----[SHA256]-----+

最终的秘钥文件生成在用户家目录下的.ssh目录下。

三、将秘钥添加至GitHub

用之前注册的账号登陆GitHub,Settings->SSH and GPG keys 点击 New SSH key, 将上一步家目录下.ssh/id_rsa.pub中的内容全部拷贝贴到key栏中,保存

四、新建仓库用于存放我们的博客

Createa new repository 这里以 我们的用户名.github.io

安装Hexo程序

进入Hexo官网 http://hexo.io 官网有详细的安装教程,若访问慢或压根打不开,还是国内你懂得,选择一个路径这里我们以E:为例 cmd到E盘,依次执行如下命令

1
2
3
4
5
6
7
8
C:\Users\peekay>e:
E:\>npm install hexo-cli -g
E:\>hexo init blog
E:\>cd blog
E:\blog>npm install
E:\blog>hexo server
INFO Start processing
INFO Hexo is running at http://127.0.0.1:4000/. Press Ctrl+C to stop.

浏览器访问:http://127.0.0.1:4000 表示Hexo安装成功

将Hexo发布到GitHub

配置Hexo

编辑器打开E盘blog目录下的_config.yml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Site  设置站点标题 语言等信息
title: Alex.Yao's Blog
subtitle:
description:
author: Alex.Yao
language: zh-Hans
timezone:

.....

# Deployment 配置git部署信息
## Docs: https://hexo.io/docs/deployment.html

deploy:
type: git
repository: https://github.com/yaonew/yaonew.github.io.git
branch: master

部署Hexo 至GitHub

cmd进入E盘blog目录 依次执行

1
2
3
4
5
E:\blog>hexo clean
INFO Deleted database.
E:\blog>hexo generate
.....
E:\blog>hexo deploy

OK这样我们的博客系统就已经部署到GitHub上了,设置GitHub Pages


这样我们的博客就可以通过 http://用户名.github.io访问了。

更换博客模版及相关的设置,当你如上的设置都OK的话,应该不难了,有机会我再补充有关模版更换设置等。就这样了,有什么问题可以给我留言。

Hello World

发表于 2016-09-16 更新于 2019-10-17
本文字数: 357 阅读时长 ≈ 1 分钟

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

1…34
Crazy Rico

Crazy Rico

33 日志
17 分类
39 标签
RSS
GitHub FCC E-Mail 慕课网 阿里云
苏ICP备17004952号 © 2020 Crazy Rico | 90k | 1:22
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.3.0
|
0%