查看原文
其他

单点登录(四)| Confluence 安装及 Confluence 集成 CAS 实践

JackTian 杰哥的IT之旅 2022-06-06

作者:阿东
微信公众号:杰哥的IT之旅(ID:Jake_Internet)

Confluence 简介

Confluence是一个专业的企业知识管理与协同软件,也可用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论、信息推送。

Confluence是atlassian公司开发的团队协作与知识管理工具,能够帮助团队成员之间共享信息、文档协作、集体讨论、信息推送。

安装

环境:
Centos 7
Mysql-5.6
Confluence-6.9
Jdk-1.8

Mysql 的安装

为confluence创建对应的数据库、用户名和密码

下载 mysql 源
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

安装 rpm 包
# rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装后,会得到两个mysql的yum的repo源

安装 mysql
# yum install mysql-server mysql-client -y

启动 mysql
# systemctl enable mysqld
# systemctl start mysqld

重置 mysql 密码
# mysql -u root 
> use mysql;
> update user set password=password(‘new passed’) where user=’user_name’;
> flush privileges;
> create database confluence default character set utf8 collate utf8_bin;
> grant all on confluence.* to ‘confluence’@’%’ identified by ‘password’;
> grant all on confluence.* to ‘confluence’@’localhost’ identified by ‘password’;
> flush privileges;

下载 confluence 安装包

# wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.9.3-x64.bin
# chmod +x atlassian-confluence-6.9.3-x64.bin

安装confluence主程序

在安装过程中会自动创建一个用户confluence,安装完成后可切换到confluence用户继续。
如果安装不完美,可以删除用户及安装文件,重新执行安装命令。

删除用户命令:userdel confluence
查询安装文件:find / -name confluence

# ./atlassian-confluence-6.9.3-x64.bin
Unpacking JRE ...
Starting Installer ...

This will install Confluence 6.9.3 on your computer.
OK [o, Enter], Cancel [c]
O                                                              # 选择o,进行安装
Click Next to continueor Cancel to exit Setup.

Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (uses default settings) [1], 
Custom Install (recommended for advanced users) [2, Enter], 
Upgrade an existing Confluence installation [3]
2                                                              # 选择 2 进入自定义安装

Select the folder where you would like Confluence 6.9.3 to be installed,
then click Next.
Where should Confluence 6.9.3 be installed?
[/opt/atlassian/confluence]


Default location for Confluence data
[/var/atlassian/application-data/confluence]


Configure which ports Confluence will use.
Confluence requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access
Confluence through your browser. The Control port is used to Startup and
Shutdown Confluence.
Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
1                                                              # 选择1,使用默认端口,也可自定义端口

Confluence can be run in the background.
You may choose to run Confluence as a service, which means it will start
automatically whenever the computer restarts.
Install Confluence as Service?
Yes [y, Enter], No [n]
Y                                                              # 开始安装
Installation of Confluence 6.9.1 is complete
Start Confluence now?
Yes [y, Enter], No [n]
N                                                              # 输入n,不立即启动confluence

Installation of Confluence 6.9.1 is complete
Finishing installation ...

## 出现上述文字,证明已经安装成功了。

将mysql连接驱动放到相应的目录

# cp ./mysql-connector-java-5.1.47.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/

防火墙放行8090端口

# firewall-cmd --add-port=8090/tcp –permanent
# firewall-reload

使用浏览器访问http://ip:8090



进行破解

关闭confluence,进入安装目录,把下面的jar包复制出来

# cp /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.3.0.jar /root/
将其改名为atlassian-extras-2.4.jar

# mv atlassian-extras-decoder-v2-3.3.0.jar atlassian-extras-2.4.jar
传到本地,然后使用下载的破解工具,运行confluenc_keygen.jar。

将记录的serverID填入,name随便填。

点击gen,生成key并记录。

点击.patch选择刚刚传到本地的atlassian-extras-2.4.jar


将破解的atlassian-extras-2.4.jar包上传到服务器

将名称重命名为之前的名称

# mv atlassian-extras-2.4.jar atlassian-extras-decoder-v2-3.3.0.jar

然后覆盖会原路径

# mv atlassian-extras-decoder-v2-3.3.0.jar /opt/atlassian/confluence/confluence/WEB-INF/lib/

重新启动confluence并完成后续安装

回到输入key的界面,输入上面记录的key,点击下一步进行初始化操作。



注意:
在此步可能报必须使用‘READ-COMMITTED’作为默认隔离级别

解决方法

# mysql -uroot -p
> SET GLOBAL tx_isolation=’READ-COMMITTED’;

点击测试连接,确认无误在继续,配置管理员信息等;





存在问题:

Confluence 实例健康检查遇到的问题
数据库 InnoDB 日志文件大小
功能:检查mysql数据库中的Innodb_log_file_size变量是否恰当。
修改mysql安装目录下的my.ini或者my.cnf文件,加入或修改如下:
innodb_log_file_size=256M
重启mysql服务
最大允许数据包
功能:检查mysql数据库中的mac_allowed_packet变量是否恰当。
修改mysql安装目录下的my.ini或者my.cnf文件,加入或修改如下
max_allowed_packet=34M
重启mysql服务

Confluence 集成cas

主要步骤:

1.配置web.xml文件,设置过滤器,匹配
2.配置seraph-config.xml,设定访问到cas的信息
3.修改xwork.xml(这个文件存在于confluence-3.0.1.jar),配置登出
4.导入cas登录的jar包
5.重启cas服务
6.登录测试

1.配置web.xml

编辑web.xml添加过滤器,监听器

# vim /opt/Atlassian/confluence/confluence/confluence/WEB-INF/web.xml

过滤器定义:在所有过滤器后面,配置cas的过滤器

<!—配置过滤器和cas以及本地服务的路径信息>
<!--CAS:START - Java Client Filters-->
    <filter>
        <filter-name>CasSingleSignOutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    </filter>
    <filter>
        <filter-name>CasAuthenticationFilter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>http://192.168.1.136:8080/cas/login</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://192.168.1.30:8090/</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>CasValidationFilter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>http://192.168.1.136:8080/cas/</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://192.168.1.30:8090/</param-value>
        </init-param>
    </filter>
<!--CAS:END-->

过滤器匹配,在登录匹配

<!-- End plugins 2.5 filter changes -->
    <!--CAS:START - Java Client Filter Mappings-->
    <filter-mapping>
         <filter-name>CasSingleSignOutFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
         <filter-name>CasAuthenticationFilter</filter-name>
         <url-pattern>/login.action</url-pattern>
    </filter-mapping>
    <filter-mapping>
         <filter-name>CasValidationFilter</filter-name>
         <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--CAS:END -->
    <filter-mapping>
        <filter-name>login</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ERROR</dispatcher>
</filter-mapping>

监听器配置地址

在所有监听器前面,配置监听器,也就是在Servlet Context Listeners (Executed on app startup/shutdown)这段话后面,配置监听器

<listener>
        <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

2.配置seraph-config.xml

配置seraph-config.xml,设定访问cas登录的信息,同时设置confluence的授权信息为cas的方式

#  vim /opt/Atlassian/confluence/confluence/WEB-INF/classes/seraph-config,xml

修改默认的登录配置

<parameters>
        <init-param>
            <param-name>login.url</param-name>
          <!--  <param-value>/login.action?os_destination=${originalurl}&amp;permissionViolation=true</param-value>
                -->
            <param-value>http://192.168.1.136:8080/cas/login?service=${originalurl}</param-value>
        </init-param>
        <init-param>
            <param-name>link.login.url</param-name>
           <!-- <param-value>/login.action</param-value>-->
            <param-value>http://192.168.1.136:8080/cas/login?service=${originalurl}</param-value>
        </init-param>
        <init-param>
设定授权信息
   <!-- Default Confluence authenticator, which uses the configured user management for authentication. -->
  <!--  <authenticator class="com.atlassian.confluence.user.ConfluenceAuthenticator"/>-->
    <authenticator class="org.jasig.cas.client.integration.atlassian.ConfluenceCasAuthenticator"/>


3.配置登出

获取到xwork.xml文件,需要从lib目录下面,获取到confluence-6.9.0.jar文件,将jar包复制到某个目录进行解压

# cp /opt/Atlassian/confluence/confluence/WEB-INF/lib/confluence-6.9.0.jar /home/ceshi/
# yum install -y unzip
# unzip confluence-6.9.0.jar -d /home/ceshi/confluence

将获取到的xwork.xml文件复制到/opt/Atlassian/confluence/confluence/WEB-INF/classes目录下

# cp /home/ceshi/confluence/xwork.xml /opt/Atlassian/confluence/confluence/WEB-INF/classes/xwork.xml
# vim /opt/Atlassian/confluence/confluence/WEB-INF/classes/xwork.xml

设定退出重定向到cas服务器上

<action name="logout" class="com.atlassian.confluence.user.actions.LogoutAction">
            <interceptor-ref name="defaultStack"/>
           <!-- <result name="error" type="velocity">/logout.vm</result>-->
            <result name="success" type="redirect">http://192.168.1.136:8080/cas/logout</result>
        </action>

4.添加jar包

添加的jar包为csa-client-core-3.3.3.jar和cas-client-integration-atlassian-3.5.0.jar,貌似版本不同不会报错

# cp ./cas-client* /opt/Atlassian/confluence/confluence/WEB-INF/lib/

5.重启confluence服务

# /opt/Atlassian/confluence/bin/stop-confluence.sh
# /opt/Atlassian/confluence.bin/start-confluence.sh

6.登录测试


本公众号全部文章已整理成一个目录,请在本公众号后台回复「m」获取!

推荐阅读

*《单点登录(一)| LDAP 协议
*《单点登录(二)| OAuth 授权框架及 CAS 在为 Web 应用系统提供的解决方案实践
*《单点登录(三)| JIRA 安装及 JIRA 集成 CAS 实践
*《假如计算机是中国人发明的,那代码应该这么写
*《运维升级,京东云 DevOps 怎么玩?
*《“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存