Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >生成密码保护pdf。如何为每个用户获得唯一的密码?

生成密码保护pdf。如何为每个用户获得唯一的密码?
EN

Stack Overflow用户
提问于 2016-11-25 10:04:13
回答 1查看 4.5K关注 0票数 3

我已经将我的报告上传到JasperServer上,在那里我正在安排报告,并使用作业rest以电子邮件的形式将pdf作为附件发送给用户。一切都很完美,但是我们也需要对pdf进行加密。我读过wiki主题并且能够加密pdf。

但是我们希望密码是动态的,并且对每个用户来说都是不同的(比如他们的电话号码和出生日期的组合)。链接中描述的示例将密码指定为jrxml中的report属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property name="net.sf.jasperreports.export.pdf.user.password" value="123456"/>
<property name="net.sf.jasperreports.export.pdf.owner.password" value="123456"/> 

密码被指定为字符串,对于从这个jrxml生成的每一个pdf来说都是相似的。

我试过这样的方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<property name="net.sf.jasperreports.export.pdf.user.password" value="{$F{dateOfBirth}}"/>

其中$F{ dateOfBirth }是运行查询的用户的dateOfBirth。但是它没有输入字段值,而是将其视为一个字符串,并设置密码to=“{$F{dateOfBirth}”。

我该怎么做呢?他们有没有办法让我为每个用户设置不同的密码?

注意:数据源是为jasperserver上的报表配置的。在作业执行api调用中,Jasperserver执行查询,填充报告,导出为pdf,并将其作为电子邮件发送给用户。

EN

回答 1

Stack Overflow用户

发布于 2016-11-30 07:06:44

正如一条评论所提到的,只需使用Java即可。

下面是一个示例,我将如何编写这个代码(这并不完美,但我认为您会理解的):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;
import net.sf.jasperreports.engine.fill.JRFillParameter;

public class GetBirthdayScriptlet extends JRDefaultScriptlet {

    private Connection conn;

    private Connection getConnection() throws JRScriptletException {
        if (conn == null) {
            if (getParameterValue(JRFillParameter.REPORT_CONNECTION) != null) {
                conn = (Connection) (getParameterValue(JRFillParameter.REPORT_CONNECTION));
            } else {
                throw new RuntimeException("No db-connection configured in the report!");
            }
        }
        return conn;
    }

    public String getBirthday(String email) throws JRScriptletException, SQLException {
        ResultSet result = null;
        String resultString = null;
        CallableStatement stmt = getConnection().prepareCall("select birthday from birthday_table where email = " + email);
        stmt.executeUpdate();
        result = stmt.getResultSet();
        if(result.next()){
            result.getString(1);
        }
        return resultString;
    }
}

将这个小片段打包到一个jar中,并将其添加到Studio构建路径中,并将其上传到Jaspersoft服务器。

在您的报告中,概要说明了在scriptlet上进行->“codesnippet”,这个脚本的类是GetBirthdayScriptlet (这是codesnippet类)。

要在报表中使用的表达式是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$P{>>scriptlet-name<<_SCRIPTLET}.getBirthday("email@example.com")

不要输入字符串,只需使用参数即可。

另外,也许可以考虑使用参数LoggedInUserEmailAddress中内置的Jaspersoft

如果你想对现场报告进行加密,这会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40810417

复制
相关文章
破解Excel 密码保护
Excel加密虽然不能防止能打开的人通过复制等操作外泄,但至少也是一防较好的防线。移除Excel 2013的密码保护方法如下: 点击“Office”按钮,再选择“另存为”: 在弹出的“另存为”对话框中,单击左下角的“工具”按钮,选择“常规选项”: 弹出“常规选项”对话框,可以看到,当然有星号显示密码: 将这个星号显示的密码清除,再单击“确定”即可: Excel文件虽然能打开,能编辑,一些工作簿却因为有了“保护工作表”密码而无法编辑。可以用如下代码进行解除密码保护。 Sub PasswordBreaker()
张善友
2018/01/19
1.6K0
破解Excel 密码保护
ASP.NET Core技术--使用用户密码保护API接口
使用用户密码保护API接口 public static IEnumerable<IdentityResource> GetIdentityResources() { var customProfile = new IdentityResource( name: "custom.profile", displayName: "Custom profile", claimTypes: new[] { "name", "email", "status" }); return new List<Ident
软件架构师Michael
2023/03/19
6260
PDF编辑器Acrobat 软件--Adobe Acrobat Pro DC如何添加密码保护
在Adobe Acrobat Pro DC中,您可以使用密码保护功能来保护您的PDF文件,以确保只有授权的人员才能访问、编辑和打印PDF文件。
用户8187027
2023/03/14
1.9K0
你的密码保护问题真的安全吗?
安全研究人员Elie Bursztein和Ilan Caron对Google用户使用的数以百万计的密码保护问题及答案进行了数据分析,研究结果表明,密码保护这种“忘记密码”后最基本的验证方式存在诸多安全隐患。 你的密保问题安全吗? 你第一个宠物的名字叫什么? 你最喜欢的食物是什么? 你母亲的婚前姓是什么? 这些看似随机的问题有什么共同点?他们都是典型的“密保问题/安全问题”。你很可能回答过这种密保问题——很多在线服务用这些问题帮助用户在忘记密码的情况下进入账号,或者用作防止异地登录的额外安全保护。 尽管
FB客服
2018/02/06
9290
你的密码保护问题真的安全吗?
WordPress密码保护插件:Password Protected
Password Protected插件的基本功能就是访问网站要求输入密码,否则不能访问内容。
星哥玩云
2022/06/11
4750
WordPress密码保护插件:Password Protected
用户ID生成唯一邀请码的几种方法
有一个业务需求,需要根据用户 ID(数值型 >=10000000)生成一个唯一的长 6 个字符的邀请码,用于邀请新用户注册。
恋喵大鲤鱼
2021/12/06
9.1K0
用户ID生成唯一邀请码的几种方法
EXCEL密码去除(工作表、工作薄密码保护破解)
各位朋友不知有沒有碰到过这样的情况,当要打开一个EXCEL工作表时,突然发现密碼忘记了,唯一可做的也许是搞个破解软件来破一下,但针对打开后的工作表保护,一般就很难有效了,复制虽是一种方法,但不少数据(特別是公式较多者),可能就要乱套了,如何才能破解这一类密码呢?不久前在网上发现此精华,与大家共享一下! 利用宏运行方式破解,真的很有效,运行中可能电脑会有两分钟无反应,千萬不要以为死机了哦,等等吧! 步骤方法如下:1、打开文件2、工具—宏—-录制新宏—输入名字如:aa3、停止录制(这样得到一个空宏)4、工具—宏—-宏,选aa,点编辑按钮5、删除窗口中的所有字符(只有几个),替换为下面的内容:(复制吧)6、关闭编辑窗口7、工具—宏—–宏,选AllInternalPasswords,运行,确定两次,等2分钟,再确定.OK,没有密码了! !宏内容如下:
用户1191760
2019/02/27
14.4K2
EXCEL密码去除(工作表、工作薄密码保护破解)
各位朋友不知有沒有碰到过这样的情况,当要打开一个EXCEL工作表时,突然发现密碼忘记了,唯一可做的也许是搞个破解软件来破一下,但针对打开后的工作表保护,一般就很难有效了,复制虽是一种方法,但不少数据(特別是公式较多者),可能就要乱套了,如何才能破解这一类密码呢?不久前在网上发现此精华,与大家共享一下! 利用宏运行方式破解,真的很有效,运行中可能电脑会有两分钟无反应,千萬不要以为死机了哦,等等吧! 步骤方法如下:1、打开文件2、工具—宏—-录制新宏—输入名字如:aa3、停止录制(这样得到一个空宏)4、工具
用户1272546
2018/06/04
1.5K0
Typecho密码保护文章弹窗式提示
昨天群里有人问typecho的文章密码保护功能,提示密码错误时怎么发出弹窗式提醒,而非跳转到错误提示页面,我就随后说了个ajax提交表单的方式,刚刚试了一下确实很可以的,代码如下。 代码
泽泽社长
2023/04/17
6440
js实现:输入密码才能打开网页。js实现密码保护的网页。
用js实现:输入密码才能打开网页,即js实现密码保护的网页。 方法非常简单,直接上代码:
学派客
2023/04/06
5.8K0
【说站】php生成用户密码的两种方法
密码加密方式数据库中,存储结果的列可以超过60个字符,需要将varchar长度设置为255。
很酷的站长
2022/11/23
3550
【说站】php生成用户密码的两种方法
siblings() 获得匹配集合中每个元素的同胞
如果给定一个表示 DOM 元素集合的 jQuery 对象,.siblings() 方法允许我们在 DOM 树中搜索这些元素的同胞元素,并用匹配元素构造一个新的 jQuery 对象。
全栈程序员站长
2021/10/20
1.4K0
WordPress 文章查询教程7:如何使用密码保护参数
在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。
Denis
2023/04/13
5320
Nginx中给目录增加密码保护实现程序
一款Nginx中给目录增加密码保护实现程序,可以有效的保护一些目录不被访问,有需要的朋友可参考一下。
星哥玩云
2022/06/30
6680
如何在Mac中使用密码保护文件夹
并非所有人都能看到您的所有文件。您的朋友和家人可能不喜欢这个事实,但是有时候就是这样。幸运的是,  Mac用户可以通过密码保护特定文件夹来保护其敏感文件免遭窥视。许多付费程序提供类似的功能,但我们更喜欢Apple内置的这种免费方法,该方法允许将文件夹转换为受保护的磁盘映像。
MAC先森
2019/10/24
1.1K0
PDF文件密码破解
今天在整理文档的时候发现,有几个随机数字命名的加密pdf文件,回想了一下相关情况,好像密码是6位以内的数字加字母。正好记录一下使用hashcat和john爆破PDF文件密码的用法。顺便学习记录一下hashcat和john的用法
Gcow安全团队
2020/09/14
4.3K0
PDF文件密码破解
针对每个用户的作业(针对用户的定期事件)
-----------------------------------------------------------------------------------------------------------------------------
liulun
2022/05/09
3020
生成密码
本文提供一个简单的方式让大家可以轻松记住一个账户和密码,来得到对每个不同的网站有一个对应的密码。
林德熙
2018/09/19
1.3K0
生成密码
2.leetcode唯一的摩斯密码
1.题目 International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "b" maps to "-...", "c" maps to "-.-.", and so on.
py3study
2020/01/02
4020
点击加载更多

相似问题

如何为用PDFKit生成的PDF文件设置密码保护

12

生成受密码保护的pdf rails

12

如何为每个用户生成唯一密钥?

12

如何为PDF文件添加密码保护

30

如何为使用ssrs 2008生成的pdf设置密码保护

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文