управление безопасностью свитера и управление сеансами

Объективная версия C этого решения с перецентрированной логикой верхнего изображения:

-(UIImage *)getImageInclosedWithinAnotherImage
{
    float innerImageSize = 20;
    UIImage *finalImage;

    UIImage *outerImage = [UIImage imageNamed:@"OuterImage.png"];
    UIImage *innerImage = [UIImage imageNamed:@"InnerImage.png"];

    CGSize outerImageSize = CGSizeMake(40, 40); // Provide custom size or size of your actual image
    UIGraphicsBeginImageContext(outerImageSize);

    //calculate areaSize for re-centered inner image
    CGRect areSize = CGRectMake(((outerImageSize.width/2) - (innerImageSize/2)), ((outerImageSize.width/2) - (innerImageSize/2)), innerImageSize, innerImageSize);
    [outerImage drawInRect:CGRectMake(0, 0, outerImageSize.width, outerImageSize.height)];
    [innerImage drawInRect:areSize blendMode:kCGBlendModeNormal alpha:1.0];

    finalImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return finalImage;
}
42
задан Joshua Taylor 22 July 2015 в 14:13
поделиться

3 ответа

Управление сеансом - это компетенция контейнера, в котором развернут Джерси. В большинстве производственных случаев он будет развернут в контейнере, который выполняет управление сеансом.

Приведенный ниже код представляет собой простой пример ресурса jersey, который получает объект сеанса и сохраняет значения в сеансе и извлекает их при последующих вызовах.

@Path("/helloworld")
public class HelloWorld {

    @GET
    @Produces("text/plain")
    public String hello(@Context HttpServletRequest req) {

        HttpSession session= req.getSession(true);
        Object foo = session.getAttribute("foo");
        if (foo!=null) {
            System.out.println(foo.toString());
        } else {
            foo = "bar";
            session.setAttribute("foo", "bar");
        }
        return foo.toString();


    }
}
70
ответ дан 26 November 2019 в 23:23
поделиться

Ответ Джека о сеансах верен. Они специфичны для контейнера, в котором вы выполняете, хотя спецификация сервлетов, по крайней мере, дает вам переносимость между контейнерами JavaEE.

Что касается безопасности, у вас, по крайней мере, есть возможность отделить его от вашего конкретного кода JAX-RS, используя JaaS (Служба аутентификации и авторизации Java) и фильтр сервлетов . Фильтр можно использовать для принудительной проверки подлинности HTTP и, при успешной проверке подлинности, настроить тему JaaS с соответствующими участниками. Ресурсы JAX-RS могут проверить наличие соответствующих руководителей по теме. Поскольку вы контролируете весь стек, вы должны иметь возможность полагаться на аутентифицированного пользователя в своих ресурсах (но проверьте это!), И вы можете принудительно выполнить авторизацию на основе текущей операции в коде ресурса.

6
ответ дан 26 November 2019 в 23:23
поделиться

Для обеспечения безопасности Джерси вам следует обратить внимание на поддержку OAuth в Джерси. OAuth идеально подходит, когда вы предоставляете API для своей системы внешним пользователям. Например, как linkedin api

http://wikis.oracle.com/display/Jersey/OAuth

3
ответ дан 26 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: