标签: invalidation

使spring安全会话无效

我需要使用户会话无效(或踢).应用程序仅限制用户每个容器只登录一个用户.

我尝试从会话注册表调用removeSessionInformation,它完成了解锁用户.所以其他用户可以使用踢脚会话用户名登录.

但是被踢的那个用户的SessionContextHolder仍然是.所以他们仍然拥有访问受保护页面的相同权限.

如何从指定的会话注册表信息中失效或删除SessionContextHolder的Principal?

ps:在我的旧应用程序中,我在UserDomain(UserDetails)中提供了一个包含HttpSession的变量.当他们需要踢用户时,我只是从指定的UserDomain中使HttpSession无效.但我不知道如何在春天这样做(它更像是删除了SessionContextHolder的Principal而不是HttpSession).SessionRegistryImpl在Spring中的实现几乎与实现相同.

java session spring spring-security invalidation

6
推荐指数
3
解决办法
2万
查看次数

在一个视图上应用动画时,Android正在重绘所有视图

我有一个包含一个带有sevral视图的布局的应用程序,当我为一个视图设置动画时,所有视图都被重绘了!这是正常的行为还是我做错了什么?我想取消此行为,只是重绘我手动使thanx无效的视图

<SecondsArc 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/secondsArc" 
android:background="#00000000" 
android_layout_gravity="center"></SecondsArc >

<MinutesArc
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/minutesArc" 
android:background="#00000000" 
android_layout_gravity="center"></MinutesArc >
Run Code Online (Sandbox Code Playgroud)

我说两个自定义视图和secondsArc视图每秒都被动画,因此每秒重绘10次,问题是MinutesArc也被重绘了!问题是,我有大约10个视图,所有的都被重新绘制每秒10次.这个方法在SecondsArc中被调用来旋转它

public void rotateByDegree(float degree){
    RotateAnimation rotateAnim = new RotateAnimation(currentDegree, currentDegree + degree, getWidth()/2,270);
    rotateAnim.setDuration(600);
    rotateAnim.setFillAfter(true);
    rotateAnim.setFillEnabled(true);
    this.startAnimation(rotateAnim);}
Run Code Online (Sandbox Code Playgroud)

animation android view redraw invalidation

6
推荐指数
0
解决办法
656
查看次数

C#Invalidate不调用paint方法

我用OnPaint方法覆盖了在屏幕上绘制椭圆.

    protected override void OnPaint(PaintEventArgs e)
    {
        MessageBox.Show("Paint");
        if (debugStarted)
        {
            int y = rtbLogicCode.PlaceToPoint(new Place(0, debugLine)).Y;
            if (rtbLogicCode.GetVisibleState(debugLine).ToString() == "Visible")
            {
                e.Graphics.FillEllipse(new LinearGradientBrush(new Rectangle(0, y, 15, 15), Color.LightPink, Color.Red, 45), 0, y, 15, 15);
            }
            base.OnPaint(e);
        }
    }

    private void rtbLogicCode_Scroll(object sender, ScrollEventArgs e)
    {
        this.Invalidate();
    }
Run Code Online (Sandbox Code Playgroud)

滚动事件(在Richtextbox上)被正确处理,但即使我使表单无效,它也没有调用OnPaint函数(消息框未显示).

可能的原因是什么?

编辑:我忘了提到我的子窗体的初始化函数(使用MDI属性添加为主窗体的控件),我设置以下样式:

 private void LogicCodeInit()
    {


            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);


    }
Run Code Online (Sandbox Code Playgroud)

Edit2:我也忘了提到子窗体是作为TabControl的控件添加的.然后将TabControl添加为主窗体的控件.

.net c# paint invalidation winforms

6
推荐指数
1
解决办法
2万
查看次数

Android RatingBar绘画本身就错了

我需要强制重绘的的的RatingBar控制.

在评级栏和样式出现许多问题后,我设法让几乎所有工作都能正常工作.

我在listview项目中使用它.由于它是如何工作的,人们必须与它的外观和行为"战斗"一点.我最终使用了我在SO上找到的解决方案,其中一个设置它作为指示器,但是在自己手动计算评分栏上的点击对应的分数时.在浏览代码时代码总是产生正确的结果,但第一次控制绘画本身是错误的.这是我在getView "第一部分"中的代码:

  final RatingBar rating = (RatingBar)view.findViewById(R.id.listitem_catalog_rating);

  rating.setOnTouchListener(new OnTouchListener() {
    @Override

    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
             float touchPositionX = event.getX();
             float width = rating.getWidth();
             float starsf = (touchPositionX / width);
             starsf = starsf * param_final__data.score_max; // 5
             int starsint = (int) starsf + param_final__data.score_min;                                   
             byte starsbyte = (byte) starsint; 
             param_final__data.score_cur = starsbyte;
             starsf = starsint; 
             rating.setRating(starsf);
             rating.setVisibility(View.INVISIBLE);
             // force repaint and set …
Run Code Online (Sandbox Code Playgroud)

android listview repaint invalidation ratingbar

6
推荐指数
1
解决办法
1263
查看次数

Amazon CloudFront - 通过正则表达式使文件无效,例如 *.png

有没有办法让 Amazon CloudFront 失效(通过管理控制台),使所有匹配模式的文件失效?例如图像/*.png

语境 -

  1. 我已经为网站上的图像设置了缓存控制,但错误地在 Apache 的缓存指令中遗漏了 png 扩展名。因此 .gif/.jpg 文件缓存在用户计算机上,但 .png 文件则没有。
  2. 所以我修复了 apache 指令,现在我的 apache 服务器使用适当的缓存控制指令来提供 png 文件。我测试了这个。
  3. 但是cloudfront过去已经获取了这些png文件,因此通过cloudfront点击这些png文件仍然会带来那些没有缓存控制的png文件。最终结果 - 仍然没有用户缓存这些 png 文件
  4. 我尝试在 Amazon CloudFront 控制台中将失效设置为 images/*.png。控制台说已完成,但我仍然没有在 png 文件中获得缓存控制指令。--> 让我相信失效并没有发生。
  5. 我可以对完整的图片目录设置失效;但我有太多的图像文件 --> 我会因此被收取 > 100 美元的费用。所以试图避免这种情况。
  6. 在我的代码中,更改图像版本以便 Cloudfront 获取新版本是一项痛苦的练习;为 500 个 png 文件执行此操作会很痛苦。--> 试图避免它。
  7. 列出单个 png 文件也是一种痛苦 --> 也要尽量避免它。

谢谢,-阿米特

invalidation amazon-cloudfront

5
推荐指数
1
解决办法
2035
查看次数

更新画布?无效()?

嗨,我试图让我的应用程序从我制作的自定义视图更新画布此视图创建一个正方形,中心带有线条和圆形。我想按下一个按钮并在画布上随机绘制 x 和 y 坐标。

这是我的主要活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
//  EditText numDart = (EditText) findViewById(R.id.numDarts);

    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public int convertToDpi(int px){
    DisplayMetrics metrics = getResources().getDisplayMetrics();
    int unit = metrics.widthPixels/20;
    return px * unit;
}
public void drawCanvas(View v){
    View view = (View) findViewById(R.id.canView);
    Paint black = new Paint();
    black.setColor(Color.BLACK);
    black.setStyle(Style.FILL); …
Run Code Online (Sandbox Code Playgroud)

android canvas invalidation

5
推荐指数
1
解决办法
1万
查看次数

const引用是否安全

如果我对另一个成员使用const引用,该引用是否可能失效?

class Class {
public:
    const int &x{y};
private:
    int y;
};
Run Code Online (Sandbox Code Playgroud)

例如,当我在一个向量中使用此类的实例时,它会在a之后增加其容量push_back.根据标准,如果向量必须增加其容量,则所有迭代器和引用都将失效.之后参考仍然有效吗?

c++ getter reference member invalidation

5
推荐指数
1
解决办法
189
查看次数

无效元数据和Impala中的刷新命令之间的区别?

我在此链接上看到了影响Impala 1.1版的内容

从Impala 1.1开始,REFRESH语句仅适用于现有表。对于新表,您需要发出“ INVALIDATE METADATA”语句。

这对于Impala的更高版本仍然适用吗?

invalidation impala

5
推荐指数
1
解决办法
1万
查看次数

如何放弃(无效而不保存)x86_64 上的缓存行?

据我了解,_mm_clflush()/_mm_clflushopt()如果缓存行已更改,则在将其保存到内存时使缓存行无效。有没有一种方法可以简单地放弃缓存行,而不将对其进行的任何更改保存到内存中?

一个用例是在释放内存之前:我不再需要缓存行或它们的值。

c++ optimization x86-64 invalidation cpu-cache

5
推荐指数
0
解决办法
392
查看次数

究竟什么是引用/指针的失效?

我找不到标准中指针/引用失效的任何定义.我问,因为我发现C++ 11禁止字符串的写时复制(COW).据我所知,如果应用了COW,那么在以下命令之后p仍然是一个有效的指针和r一个有效的引用:

std::string s("abc");
std::string s2(s);
char * p = &(s2[0]);
char & r = s2[0];
s2[1] = "B";
Run Code Online (Sandbox Code Playgroud)

只是他们不再指向/引用第一个字符s2,而只是指向第一个字符s.

在C++ 11标准中,据说非常量std::basic_string::operator[]可能不会使字符串元素的指针/引用(以及迭代器)无效.

哪些规则说上面显示的例子实际上会失效p,r如果实施了COW?

c++ pointers reference invalidation language-lawyer

5
推荐指数
1
解决办法
217
查看次数